-3

我有 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条件时,我得到了错误。

4

4 回答 4

3

删除那个杂散的双引号?

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

没有额外条件的那个应该会失败,除非你已经删除它或者 MySQL 会默默地忽略它

于 2013-05-08T09:56:07.977 回答
1

您的查询中有额外"的内容 - 删除它,它应该可以工作。

一般来说,"完全避免在 SQL 中使用双引号。大多数 SQL 方言只支持使用单引号。一些方言,如 PostgreSQL,使用双引号来转义名称(但不表示字符串)。

在 SQL 正文中避免双引号也有一个很好的属性,您可以使用它们在您的编程语言(如 PHP、Perl、Python 等)中转义整个 SQL。

于 2013-05-08T09:56:26.720 回答
1

当您在一个地方使用 ' 和 " 时,您的查询中有语法错误。我在下面使用它进行了修改:

SELECT * FROM `table1` WHERE `RateName` LIKE '%$customerType%' AND `URL` IS NOT NULL AND `MaxNum` = 2
于 2013-05-08T09:57:05.093 回答
1

尝试 LIKE '%$customerType%' AND 而不是 LIKE '%$customerType%'" AND,它工作正常。

于 2013-05-08T09:59:42.933 回答