运行环境是Linux 操作系统!
一、if(site in (7,16,23,24,10,21,18,13,12,15,11,14,19,8,9,22,17,20),'104',if(site in(57,54,39,42,41,44),'105',if(site in (48,49,46,50,51,52,53),'103',if(site in (33,35,43,34),'107',if(site in(35,31,30,45,29,32),'108',if(site in(27,28,56,26),'109',if(site=25,'110','111')))))))
这样的有没有更好的方法实现?二、在MSSQL可以通过两张表里相同的字段值,来用一张表里的数据更新另外张表里的数据 比如:
update a set a.id=b.code from card as a, card2 as b where a.ip=b.ip  这样在MYsql里是执行不了的,应该怎么实现?三、一张表里的字段里的值怎么加上数据 比如:
name 
合肥
六安
黄山
       要在每个后面加上个 市 变成
name
合肥市
六安市
黄山市        这个应该怎么写?

解决方案 »

  1.   


    update card as a, card2 as b
    set a.id=b.code 
    where a.ip=b.ip 
      

  2.   


    update 一张表里 set 字段=concat(字段,'市')
      

  3.   

    一、if(site in (7,16,23,24,10,21,18,13,12,15,11,14,19,8,9,22,17,20),'104',if(site in(57,54,39,42,41,44),'105',if(site in (48,49,46,50,51,52,53),'103',if(site in (33,35,43,34),'107',if(site in(35,31,30,45,29,32),'108',if(site in(27,28,56,26),'109',if(site=25,'110','111')))))))
    这样的有没有更好的方法实现?select  case when site in () then 104 when site in () then 105 ....end
      

  4.   

    三、一张表里的字段里的值怎么加上数据 比如:
    name  
    合肥
    六安
    黄山
      要在每个后面加上个 市 变成
    name
    合肥市
    六安市
    黄山市 这个应该怎么写?update tb
    set col1=concat(col1,'市');