2008-10-27 261 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