我目前根据具有相同值的列选择..
"SELECT * FROM users WHERE uuid = ?"
但是如果我想根据“包含”字符串值的列之一返回一行呢?一些伪代码将是:
SELECT * FROM users
WHERE column CONTAINS mystring
感谢任何帮助,我一直在寻找其他答案,但无济于事。
答案 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,) )