我尝试了以下两个陈述:
SELECT col FROM db.tbl WHERE col (LIKE 'str1' OR LIKE 'str2') AND col2 = num
会导致语法错误SELECT col FROM db.tbl WHERE page LIKE ('str1' OR 'str2') AND col2 = num
导致“截断错误的DOUBLE值:str1”和“截断错误的DOUBLE值:str2”,看起来像每个结果。但是,实际上没有返回任何结果。我认为这两个陈述中的一个可行,但它们不起作用。
答案 0 :(得分:49)
SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = num
答案 1 :(得分:3)
我相信你需要WHERE ((page LIKE 'str1') OR (page LIKE 'str2'))
答案 2 :(得分:2)
想想简单:
SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = ...
答案 3 :(得分:1)
尝试SELECT col FROM db.tbl WHERE(col LIKE'str1'或col LIKE'str2')和col2 = num
答案 4 :(得分:1)
“OR”运算符适用于表达式。 “LIKE'str1'”和“LIKE'str2'”不是有效的表达式,因为“LIKE”运算符需要左手侧和右手侧。
page LIKE ('str1' OR 'str2')
首先尝试将'str1'和'str2'组合在一起,给出值TRUE。然后,它会尝试评估page LIKE TRUE
,并报告错误。
答案 5 :(得分:1)
在字符串的开头和结尾处使用%
。所以它也将检查Sub-Strings
SELECT col FROM db.tbl WHERE (col LIKE '%str1%' OR col LIKE '%str2%') AND col2 = num
答案 6 :(得分:0)
在最新版本的SQL中,您可以使用IN
运算符:
SELECT col FROM db.tbl WHERE col IN('str1','str2') AND col2 = num
答案 7 :(得分:0)
我假设你想要的是,
SELECT col FROM db.tbl WHERE col LIKE '%str[12]%' AND col2 = num
从字面上看,这将找到所有情况(col like %str1% 或 col like %str2%)AND col2 = num