2014-02-08 60 views
-1

我使用LIKE語句,這是查詢:MySQL的LIKE語句錯誤#我的查詢1064

SELECT * FROM ogloszenia WHERE oferta = "Oferta kupna" and LIKE = "cokolwiek" ORDER BY id DESC Limit 5 offset 0; 

而且我得到的錯誤是這樣的:

Something is wrong in your syntax near 'LIKE = "cokolwiek" ORDER BY id DESC Limit 5 offset 0' in line 1 

你能告訴我如何解決這個問題或者是什麼問題?

無論如何謝謝你。

+2

除了已經給出的答案:除非您至少放置了一個'%'字符,LIKE將與'='進行相同的比較。 – CBroe

+1

@CBroe這對於ms sql來說是正確的,但不適用於mysql。看看這個:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like –

+0

好吧,你是對的。 – CBroe

回答

3

你不應該有LIKE操作後等號,並像做了一個等號任何區別添加通配符%_的字符串時,它應該與一列

somecolumn LIKE 'cokolwiek' 

IE:

somecolumn LIKE '%cokolwiek%' 

參考:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like

(也改爲單引號好的做法)

+1

它應該是單引號嗎?也可能想給他們一些關於LIKE操作符如何工作的例子。 IE,對他們來說搜索'cokolwiek'是毫無意義的 – Gohn67

+0

是的,我總是使用單引號,但可能與此錯誤無關。根據手冊,似乎可以使用兩者? https://dev.mysql.com/doc/refman/5.1/en/string-literals.html – jtheman

+0

啊是的,你是正確的雙引號在那裏工作。 – Gohn67

1

像已經是運營商,你不需要使用=

LIKE `cokolwiek` 

爲了充分利用LIKE您可以使用通配符。

2

您需要使用單引號,而不是雙引號。您也不應該在LIKE附近有=,並且需要在LIKE附近指定一個列名稱。這看起來像:

SELECT * FROM ogloszenia WHERE oferta = 'Oferta kupna' AND columnname LIKE 'cokolwiek' ORDER BY id DESC Limit 5 offset 0;