比如表里有列数据是
----------------————————
ID
————————————————
TEST00011169X
TEST000222P2T
TEST000222NN3
TEST0001113TZ
TEST0002229PQ
在表中间  TEST000   +  中间数字是地名代码  + 随机三位数字  例子中 111代表武汉, 222代表长沙吧
如何在查询后 变成下面这样呢   也就是select ID like '%TEST000111%'  的在address列中增加武汉的记录————————————————
ID              | address           
————————————————
TEST00011169X   |  武汉
TEST000222P2T   |  长沙
TEST000222NN3   |  长沙
TEST0001113TZ   |  武汉
TEST0002229PQ   |  长沙

解决方案 »

  1.   

    select *,if(mid(address,8,3)='111','武汉','长沙') from tt
      

  2.   

    一次搞不定么  在查询结果 增加一列 
    凡是ID里 TEST000111 的  全显示武汉
    TEST000222  的  全显示长沙
      

  3.   

    select *,if(id='TEST000111','武汉','长沙') from tt
      

  4.   


    谢过先, 我照你的试了 ID = 也不成,  ID LIKE 也错误。~ 
      

  5.   

    mysql> select * from t_wkres;
    +---------------+
    | id            |
    +---------------+
    | TEST00011169X |
    | TEST000222P2T |
    | TEST000222NN3 |
    | TEST0001113TZ |
    | TEST0002229PQ |
    +---------------+
    5 rows in set (0.08 sec)mysql> select id,if(mid(id,8,3)='111','武汉','长沙') as address from t_wkres;
    +---------------+---------+
    | id            | address |
    +---------------+---------+
    | TEST00011169X | 武汉    |
    | TEST000222P2T | 长沙    |
    | TEST000222NN3 | 长沙    |
    | TEST0001113TZ | 武汉    |
    | TEST0002229PQ | 长沙    |
    +---------------+---------+
    5 rows in set (0.03 sec)mysql>
      

  6.   

    请问, 如果ID列中数字想表达三种或者三种以上地名,我该怎么做呢。您的那条查询语句是说查找第8位开始,长度为3的字符串如果是111就在address里显示武汉,其余全是长沙吧。 如果想判断三个或者三个以上地方,我该怎么做呢
      

  7.   

    提问时建议一次把问题说清楚,说全面。不要等别人回答完后又出现新问题。问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧
    select id,
    ELT(FIND_IN_SET(mid(id,8,3),'111,222,333'), '武汉', '长沙', '地方') as address 
    from t_wkres;
      

  8.   

    cool 非常感谢。好的,以后我注意