sql - 在数据库列中搜索数字,其中列包含由分隔符 '"&"在 SQLite 中分隔的一系列数字

标签 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 和 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/

相关文章:

正则表达式匹配 bash 中文件的全部内容

sql - 你能锁定一个Oracle序列吗?

python - 提取正则表达式的一部分 (Python)

java - Java 中的正则表达式。意外行为

python - Django - 在 SQLite3 中设置foreignkey可延迟外键约束

sql - sqlite sql语句,带有join,on和where

java - 无法在 Android 应用程序中使用外部数据库

sql - 在 SQL Server 2005 中,Select 查询何时会阻止对相同或其他表的插入或更新?

mysql - 如何根据查询结果设置变量?

sql - 将一列复制到 oracle db 中同一个表中的另一列。我需要指定哪些数据去哪里吗?