日期:2014-05-16  浏览次数:20953 次

关于mysql语句的写法,大侠们帮忙!
运行环境是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
合肥市
六安市
黄山市 这个应该怎么写?

------解决方案--------------------
引用一、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
合肥市
六安市
黄山市 这个应该怎么写?

------解决方案--------------------
一、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
------解决方案--------------------
三、一张表里的字段里的值怎么加上数据 比如:
name
合肥
六安
黄山
要在每个后面加上个 市 变成
name
合肥市
六安市
黄山市 这个应该怎么写?



update tb
set col1=concat(col1,'市');