我正在尝试执行此查询:
查询 1:
$query = "SELECT a.*, b.title_wo
FROM `worksheet_master` AS a
INNER JOIN `work_order` AS b ON a.wo_number = b.wo_number
WHERE CONCAT (a.`wo_number` like '" . $_POST["keyword"] . "%',
`title_wo` like '" . $_POST["keyword"] . "%')
ORDER BY a.`wo_number` DESC LIMIT 0,50";
查询 2:
$query = "SELECT a.*, b.title_wo
FROM `worksheet_master` AS a
INNER JOIN `work_order` AS b ON a.wo_number = b.wo_number
WHERE CONCAT (a.`wo_number` like '" . $_POST["keyword"] . "%',
`title_wo` like '" . $_POST["keyword"] . "%')
AND a.`status` = 'NULL'
ORDER BY a.`wo_number` DESC
LIMIT 0,50";
查询 2 没有用 AND 子句给我任何结果,而查询 1 给了我结果。
谁能帮我解决这个问题?我需要整理出表中状态为空的结果,这就是为什么我在查询 2 中添加了 AND 子句,希望结果符合预期,但事实并非如此。
谢谢。
最佳答案
除非 NULL
是一个实际的字符串,否则您需要使用 IS NULL
代替。
$query = "SELECT a.*, b.title_wo
FROM `worksheet_master` AS a
INNER JOIN `work_order` AS b ON a.wo_number = b.wo_number
WHERE CONCAT (a.`wo_number` like '" . $_POST["keyword"] . "%',
`title_wo` like '" . $_POST["keyword"] . "%')
AND a.`status` IS NULL
ORDER BY a.`wo_number` DESC
LIMIT 0,50";
关于PHP/MySQL : Using 'CONCAT' and 'AND' clause in MYSQL Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41047013/