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

时间:2015-01-21 05:03:27

标签: sqlite

我目前根据具有相同值的列选择..

"SELECT * FROM users WHERE uuid = ?"

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

SELECT * FROM users
WHERE column CONTAINS mystring

感谢任何帮助,我一直在寻找其他答案,但无济于事。

4 个答案:

答案 0 :(得分:27)

SELECT * FROM users WHERE column LIKE '%mystring%'会这样做。

LIKE表示我们没有进行完全匹配(column = value),而是进行更多的模糊匹配。 "%"是一个通配符 - 它匹配0个或更多个字符,所以这就是"列中有0个或更多个字符的所有行后跟" mystring"然后是0或更多的字符"。

答案 1 :(得分:4)

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

SELECT * from users WHERE column LIKE 'pineapple%';

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

SELECT * from users WHERE column LIKE "%pineapple%";

答案 2 :(得分:0)

使用instr的另一种方式,不需要提供其他字符。

Select * from repos where instr("column_name", "Search_string") > 1

答案 3 :(得分:0)

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

您应该改用'%'||?||'%'

例如在python中,我们将具有以下内容:

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