【发布时间】:2013-03-05 22:43:02
【问题描述】:
我已经尝试调试了很长时间,但没有成功。
似乎我的 mySQL 查询在我向以下查询添加 where 子句后立即中断。
请注意,这应该不会返回任何结果:
SELECT * FROM `workorders` WHERE (`status`='Open') AND
`job_site_name` LIKE '%".$searchword."%' ORDER BY `date_promised` ASC LIMIT 20
这是没有 where 子句的相同查询,它按预期返回结果,但我需要 where status=Open 作为查询的一部分...
SELECT * FROM `workorders` WHERE
`job_site_name` LIKE '%".$searchword."%' ORDER BY `date_promised` ASC LIMIT 20
此外,这有效(并表明状态列存在并在其他情况下有效):
SELECT * FROM `workorders` WHERE (`status`='Open') AND `invoice_number` LIKE
'%".$searchword."%' ORDER BY `date_promised` ASC LIMIT 20
感谢您在确定此问题的原因方面提供的任何帮助。
提前非常感谢!
【问题讨论】:
-
第二个查询在缺少
WHERE子句时如何返回结果? -
您的查询没有意义。您在#2中有一个流氓AND。我也会厌倦您使用的引号类型。您是从 Word 还是其他任何东西复制和粘贴,为什么还要有 2 种不同类型的引号?
-
@Shackrock - 反引号是确保 mysql 读取列名的有效方法(特别是如果您使用保留字)。
-
那是一个错字。查询 #2 工作正常。请参阅已编辑。查询 #1 是我遇到的问题。
-
可能没有行符合这两个条件:
(status='Open') AND job_site_name LIKE '%".$searchword."%'?