2008-10-27 1021 views
15

我曾尝试以下两种说法:你怎么样或两个LIKE语句?

  • 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”什么样子的每结果。但是,实际上没有返回结果。

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

回答

32
SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = num 
1

尝试SELECT山坳FROM db.tbl WHERE(COL LIKE 'STR1' 或山坳LIKE 'STR2')AND COL2 = NUM​​

2

想简单:

SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = ... 
2

我相信你需要WHERE ((page LIKE 'str1') OR (page LIKE 'str2'))

1

“OR”运算符适用于表达式。 “LIKE'str1'”和“LIKE'str2'”不是有效的表达式,因为“LIKE”操作符需要左手边和右手边。

page LIKE ('str1' OR 'str2') 

首先尝试将'str1'和'str2'或者'OR'在一起,给出值TRUE。然后它会尝试并评估page LIKE TRUE,并报告错误。

1

USE %在字符串的开始和结束处。因此,它也会检查子字符串

SELECT col FROM db.tbl WHERE (col LIKE '%str1%' OR col LIKE '%str2%') AND col2 = num 
+1

不错。减少大部分工作 – 2016-12-19 10:26:14