问题与`AND`逻辑运算符mySQL

时间:2013-05-08 09:53:56

标签: mysql

我有3列感兴趣:RateNameURL是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条件时,我收到错误。

4 个答案:

答案 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并且它工作正常。