2013-05-08 154 views
-4

我有3個興趣列:RateNameURL是varchars,MaxNum是INT。 當我嘗試執行下面的命令,它失敗:問題與`AND`邏輯運算符mySQL

SELECT * FROM `table1` WHERE `RateName` LIKE '%$customerType%'" AND `URL` IS NOT NULL AND `MaxNum` = 2 

錯誤是:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" AND URL IS NOT NULL AND MaxNumOfTiers = 2' at line 1

我試圖查詢分開,下面的代碼工作正常:

SELECT * FROM `table1` WHERE `RateName` LIKE '%$customerType%'" 

然而當我添加額外的AND條件時,我收到錯誤。

回答

3

刪除那個流浪的雙引號?

SELECT * FROM `table1` WHERE `RateName` LIKE '%$customerType%' -- was here 
     AND `URL` IS NOT NULL AND `MaxNum` = 2 

的一個沒有額外的條件應該會失敗,除非你刪除它或MySQL忽略它默默地

1

你有多餘的"在查詢 - 刪除它,它應該工作。

通常,避免在SQL中使用雙引號"。大多數SQL方言只支持使用單引號。一些方言,如PostgreSQL,使用雙引號來轉義名稱(但不代表字符串)。

在SQL身體避免雙引號也有不錯的屬性,您可以用它們來逃避整個SQL在你的編程語言如PHP,Perl和Python等

1

您的查詢語法錯誤,你正在使用「和 」在一個地方我都修改它下面這樣用:

SELECT * FROM `table1` WHERE `RateName` LIKE '%$customerType%' AND `URL` IS NOT NULL AND `MaxNum` = 2 
1

嘗試LIKE '%$ customerType%' AND代替LIKE '%$ customerType%'「 AND和正常工作。