你是如何或两个LIKE语句?

时间:2008-10-27 16:47:25

标签: sql mysql

我尝试了以下两个陈述:

  • 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”,看起来像每个结果。但是,实际上没有返回任何结果。

我认为这两个陈述中的一个可行,但它们不起作用。

8 个答案:

答案 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