SELECT Pinying_py
FROM Pinying
WHERE pinying_hz LIKE '%重%'
LIMIT 0 , 1 
SELECT (SELECT Pinying_py
FROM Pinying
WHERE pinying_hz LIKE '%去%'
LIMIT 0 , 1
) + ( 
SELECT Pinying_py
FROM Pinying
WHERE pinying_hz LIKE '%重%'
LIMIT 0 , 1 ) AS Pinying_py
FROM Pinying
LIMIT 0 , 1
第一条正常有返回记录.第二句执行起来是有问题的,不知道mysql是怎么写的. 意思将多字查询结果一次结合输出.(MSsql是可以这要写的,当然没有limit)mysql 这种嵌套是怎么写的?(没分了,后面补上)

解决方案 »

  1.   

    不知道可否用如下方法:select concat((SELECT Pinying_py
    FROM Pinying
    WHERE pinying_hz LIKE '%去%'
    LIMIT 0 , 1
    ) + ( 
    SELECT Pinying_py
    FROM Pinying
    WHERE pinying_hz LIKE '%重%'
    LIMIT 0 , 1 )) as Pinying_py
    FROM Pinying
    LIMIT 0 , 1
      

  2.   

    不行,语句可运行.显示结果却是

    Pinying_py  
    0
      

  3.   

    在你的意思上 SELECT (SELECT Pinying_py
    FROM Pinying
    WHERE pinying_hz LIKE '%去%'
    LIMIT 0 , 1
    ) + ( 
    SELECT Pinying_py
    FROM Pinying
    WHERE pinying_hz LIKE '%重%'
    LIMIT 0 , 1 ) AS 'Pinying_py'
    这样就可以了. 因为前边俩个语句得出了值后,相加,并不是在FROM后的表啊. 所有你只需要SELECT他们就行了...照你的意思 是否可以简写语句优化语句呢?SELECT SUM(Pinying_py) as 'xxx'
    FROM Pinying
    WHERE pinying_hz LIKE '%去%' OR pinying_hz LIKE '%重%' 
    LIMIT 0 , 1我也是瞎写的如果不对.请谅解.
      

  4.   

    因为考虑到文字先后先后顺序,用like 的话无法按输入的先"去"后"重"字的结果输出,所以才先查询,再组合查询结果.
      

  5.   

    是实现对一串汉字进行转拼音的效果.逐个在数据查询出拼音.考虑到与数据库对接次数,所以写成一句sql
      

  6.   

    pinying 表
    id pinying_py pinying_hz
    1 qu           去
    2 chong           重
    想得到的结果:
    pinying_py
    qu+chong
    是这样子吗?
      

  7.   


    select concat((SELECT Pinying_py FROM Pinying WHERE pinying_hz LIKE '%去%' LIMIT 0 , 1 ) ,( SELECT Pinying_py FROM Pinying WHERE pinying_hz LIKE '%重%' LIMIT 0 , 1 )) as Pinying_py 
      

  8.   

    可否这样
    $arr=array('去','重',……);
    select pinying_py from pinying where pinying_hz in ($arr)
      

  9.   

    感谢大家,由于太急.我就用unitl all (就是表结果结合,不知单词可写对)做了.反正效果是达到了.估计资源是比较耗