现在某个表(testid)中三条数据,其中的一个字段为idpath 它的值有:2|21|3 ; 3|1|9 ; 11|8|6 ;
现在想把 idpath 中含 1 的那条数据给查出来(如 第二条数据;这仅仅是举个例子),
又不能用像 select * from testid where idpath like '%1%' 这样的SQL 语句,
这样一用的话,那三条数据肯定都被查出来了,所以,请问大家,有什么好的办法,来写这条语句?
现在想把 idpath 中含 1 的那条数据给查出来(如 第二条数据;这仅仅是举个例子),
又不能用像 select * from testid where idpath like '%1%' 这样的SQL 语句,
这样一用的话,那三条数据肯定都被查出来了,所以,请问大家,有什么好的办法,来写这条语句?
楼主【Jhandsome】截止到2008-07-07 14:22:22的历史汇总数据(不包括此帖):
发帖的总数量:16 发帖的总分数:630
结贴的总数量:14 结贴的总分数:520
无满意结贴数:1 无满意结贴分:30
未结的帖子数:2 未结的总分数:110
结贴的百分比:87.50 % 结分的百分比:82.54 %
无满意结贴率:7.14 % 无满意结分率:5.77 %
楼主加油
union all
select * from testid where idpath like '% ¦1 '
union all
select * from testid where idpath like '1 ¦%'
union all
select * from testid where idpath like '% ¦1 '
union all
select * from testid where idpath like '1 ¦%'
2.select * from testid where idpath like '% ¦1 ¦%' or idpath like '% ¦1 ' or idpath like '1 ¦%'
前一个比后一个性能好点
mysql里可以使用正则表达式查询
select * from testid where idpath REGEXP '(^1[|])|([|]1[|])|([|]1$)'