我正在寻找一种更有效的方法来调试我的 SQL 查询,我正在使用 phpMyAdmin 进行大多数查询检查。下面是一个查询示例:
SELECT * FROM `schedule` WHERE
(
`start` = {$start} OR
((`start` + (`runtime` * 60)) > {$start} AND (`start` + (`runtime` * 60)) <= {$end}) OR
(`start` > {$start} AND `start` < {$end})
) AND `group_id` = {$group}
现在考虑到 $start 和 start
都是时间戳,当试图查看满足哪些条件(并且令人困惑)时会变得很烦人,有时这些条件可能很多(而不是 3就像在例子中一样),有没有办法快速确定他们中的哪一个被满足了?无需手动删除它们中的每一个?
谢谢!
最佳答案
这不是一个漂亮的解决方案,但您可以将每个条件添加到列列表中:
SELECT *,
IF (`start` = {$start}, 1, 0) AS con1,
IF (((`start` + (`runtime` * 60)) > {$start} AND (`start` + (`runtime` * 60)) <= {$end}), 1, 0) AS con2,
FROM `schedule` WHERE
(
`start` = {$start} OR
((`start` + (`runtime` * 60)) > {$start} AND (`start` + (`runtime` * 60)) <= {$end}) OR
(`start` > {$start} AND `start` < {$end})
) AND `group_id` = {$group}
关于mysql - 检查满足哪个 SQL 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41495532/