我的表结构如下:
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 和 like 运算符,但没有成功。
select * from mytable where category like '%1%'
select * from mytable where category regexp '([.]*)(1)(.*)'
我真的不知道正则表达式,我只是发现它。
所以请帮帮我。
最佳答案
要匹配由 &
分隔的列表项,请使用:
SELECT * FROM mytable WHERE '&'||category||'&' LIKE '%&1&%';
这将匹配整个项目(即,仅 1
,而不是 11
,...),无论它位于列表开头、中间还是末尾。
关于sql - 在数据库列中搜索数字,其中列包含由分隔符 '"&"在 SQLite 中分隔的一系列数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20564713/