【发布时间】:2020-11-23 10:08:52
【问题描述】:
我有一个很长的mysql查询,根据状态字段选择数据。我为不同的状态调用它,它运行良好,但我有一个场景,当我应该获取所有状态为空的记录时。有没有办法做到这一点而不必编写 2 个不同的 sql 查询?
如果不将其呈现为字符串,我似乎无法插入“IS NULL”或“=”。
我想实现这个:
$sql = "SELECT name, surname FROM ...
...
WHERE status ?;";
$stmt = $pdo->prepare($sql);
$stmt->execute(array($status === 'undefined' ? 'IS NULL' : " = '$status'"));
毕竟,这就是我所做的:
$sql = "SELECT name, surname FROM ...
...
WHERE status <=> ?;";
$stmt = $pdo->prepare($sql);
$stmt->execute(array($status === 'unfinished' ? null : $status));
【问题讨论】:
-
看看这个答案...stackoverflow.com/a/48644040/915467
-
查询中的宇宙飞船和
$stmt->execute([$status === 'undefined' ? NULL : $status]);