在数据库列中搜索数字,其中列包含由分隔符“&”分隔的一系列数字在SQLite中

时间:2013-12-13 10:52:27

标签: sql regex sqlite

我的表格结构如下:

id category 

1   1&2&3

2   18&2&1

3   11

4   1&11

5   3&1

6   1

我的问题:我需要一个sql查询,当用户搜索的类别为1时,会生成如下结果集

id category

1   1&2&3

2   18&2&1

4   1&11

5   3&1

6   1

但我得到的所有结果都不是预期的结果

我尝试过regexp和运营商一样但没有成功。

select * from mytable where category like '%1%'

select * from mytable where category regexp  '([.]*)(1)(.*)'

我真的不知道regexp我刚发现它。

所以请帮帮我。

1 个答案:

答案 0 :(得分:1)

要匹配由&分隔的列表项,请使用:

 SELECT * FROM mytable WHERE '&'||category||'&' LIKE '%&1&%';

这将匹配整个项目(即仅1,而不是11,...),无论是在列表的开头,中间还是结尾。