不知道用ORALCE正则表达式这样做

有一个字段值为 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一次出来的,:)。