我有3列感兴趣:RateName
和URL
是varchars,MaxNum
是INT。
当我尝试执行以下命令时,它会失败:
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
条件时,我收到错误。
答案 0 :(得分:3)
删除那个迷路双引号?
SELECT * FROM `table1` WHERE `RateName` LIKE '%$customerType%' -- was here
AND `URL` IS NOT NULL AND `MaxNum` = 2
没有额外条件的那个应该失败,除非你已经删除它或MySQL默默地忽略它
答案 1 :(得分:1)
您的查询中有额外的"
- 删除它并且它应该有用。
通常,请避免在SQL中使用双引号"
。大多数SQL方言仅支持使用单引号。一些方言,如PostgreSQL,使用双引号来转义名称(但不代表字符串)。
在SQL体中避免双引号也有很好的属性,你可以使用它们来逃避PHP,Perl,Python等编程语言中的整个SQL。
答案 2 :(得分:1)
您在查询中遇到语法错误,因为您在一个地方使用'和'。我在下面使用它修改了它:
SELECT * FROM `table1` WHERE `RateName` LIKE '%$customerType%' AND `URL` IS NOT NULL AND `MaxNum` = 2
答案 3 :(得分:1)
尝试LIKE'%$ customerType%'而不是LIKE'%$ customerType%'“AND并且它工作正常。