有一个字段值为 2781,6492,7178
我想用一个SQL语句来测试字段中是否有 6492这个数字
select * from my_test where REGEXP_LIKE(tid,',?6492,?')
,? 我这个主要是想让6492要么前后面要么有豆号,要么无
可是结果还是不行! 肯定不行 ....能不能改进达到我要的效果
---------------------------------------------如下这个想到的方法,但不喜欢这个方法
最后想到一个方式,将字段值设置为 ,2781,6492,7178,
select * from my_test where tid like ',6492,')
[b]问题补充:[/b]
tid 是 varch2(4000) 其值可以是 2781,6492,7178
[b]问题补充:[/b]
select *
from my_test
where tid like '%6492%'
如果用这种方法: 当 tid为
2781,6492,7178,86942 这样就会有计算出两条数据
实在不行,把2个逗号都加进去
select *
from my_test
where tid like '%,6492,%'
看了半天,没有看太明白表达的意思。
是不是就是找一个字符串字段里面,是否有“6492”?
tid字段是什么类型的?
就是说:
[code="sql"]
select *
from my_test
where tid like '%6492%'
[/code]
可以解决问题?
你想用正则表达式来解决?
楼上的是正解,楼主把简单问题复杂化了,就是写正则,你那句也有错误,应该换成这样:select * from my_test where REGEXP_LIKE(tid,'.*6492.*')
[quote]
select *
from my_test
where tid like '%6492%'
如果用这种方法: 当 tid为
2781,6492,7178,86942 这样就会有计算出两条数据
[/quote]
这条记录只会被select一次出来的,:)。