Mysql子查询有条件,结果不同

时间:2015-02-23 11:37:54

标签: php mysql phpmyadmin

我对我正在进行的项目有疑问。

我有2张桌子。第一个表是workorder。该表由以下列组成:

  • ID
  • relation_code
  • 产生
  • exportready

第二个表是workorder_records。列:

  • ID
  • workorder_id
  • 描述
  • 批准

我需要选择生成的每个workorder = 0和exportready = 0并记录其记录。但是,只有经过批准= 0和描述的记录!=''。

我已经为它编写了这个查询:

SELECT *, (SELECT COUNT(*) FROM workorder_records
WHERE workorder_records.approved = 0
AND workorder_records.workorder_id = workorder.id
AND workorder_records.description != ''
) as totalunapproved
FROM workorder
WHERE workorder.generated = 0
AND workorder.exportready = 0

我在phpMyAdmin中执行此操作时得到了正确的结果。当我通过连接到同一数据库的PHP脚本运行它时,我得到不同的结果。例如,workorder_records.description实际为空但仍由查询函数返回的结果。

SQL小提琴链接:http://sqlfiddle.com/#!2/ea8aa/3

感谢任何帮助。

编辑:我通过在PHP中进行检查来解决问题。这当然不太理想,但我无法弄清楚条件子查询在PHPMyAdmin中工作的原因,而不是我的PHP脚本。

1 个答案:

答案 0 :(得分:0)

尝试替换此

workorder_records.description != ''

workorder_records.description IS NOT NULL

默认情况下,将workorder_records.description设为null。