求mysql的一个简单sql语句 id locate 1 11,1,111,2 2 111,22,33 3 1,11,23 .... 要求,我想取得locate中有11的数据(1,3数据),但是用like的话连第二个数据也得到了,该怎么办呢?这个sql该怎么写呢?select * from tab where locate+',' like '11,' select * from tab where ','+locate+',' like ',11,' SQL code:
select * from tab where locate like '1{2}'
楼上错误,比如 1,22,111
既然是like,如果支持正则,那么使用正则吧,否则你还是用多个like OR一下,比如
SQL code: f1 = '11' or f1 like '11,%' or f1 like '%,11,%' or f1 like '%,11'
正则表达式 REGEXP代替like也可以 另外,你的数据结构严重违反了第一范式,个人建议你还是从新设计一下数据库结构为好 select * from tab where locate like '11,%' or locate like '%,11,%' or locate like '%,11' hah,更多知识在http://www.it1714.cn select * from tab where locate like '11,%' or locate like '%,11,%' or locate like '%,11' hah,更多知识在http://www.it1714.cn