SQLite从哪里选择列包含字符串?

Tha*_*343 11 sqlite

我目前所拥有的选择基于具有相同值的列.

"SELECT * FROM users WHERE uuid = ?"
Run Code Online (Sandbox Code Playgroud)

但是如果我想根据"包含"字符串值的列之一返回一行呢?一些伪代码将是:

SELECT * FROM users
WHERE column CONTAINS mystring
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏,我一直在寻找其他答案,但无济于事.

Joh*_*136 31

SELECT * FROM users WHERE column LIKE '%mystring%' 会做的.

LIKE意味着我们没有做一个完全匹配(column = value),而是做一些更模糊的匹配."%"是一个通配符 - 它匹配0个或多个字符,所以这就是说"列中有0个或更多个字符的所有行后跟"mystring"后跟0个或更多个字符".


Sem*_*lon 6

使用LIKE条款。例如,如果您的字符串包含"pineapple123",则查询将为:

SELECT * from users WHERE column LIKE 'pineapple%';
Run Code Online (Sandbox Code Playgroud)

而且,如果您的字符串始终以任何数字开头,并以诸如数字结尾"345pineapple4565",则可以使用:

SELECT * from users WHERE column LIKE "%pineapple%";
Run Code Online (Sandbox Code Playgroud)


Sal*_*ini 6

检查变量子字符串(更通用的答案)

你应该'%'||?||'%'使用

例如在 python 中我们会有这样的东西:

curser.execute("SELECT * FROM users WHERE column LIKE '%'||?||'%'", (variable,) )


CoD*_*oDe 5

只是使用instr 的另一种方式,不需要提供额外的字符。

Select * from repos where instr("column_name", "Search_string") > 1
Run Code Online (Sandbox Code Playgroud)