我想知道mysql中是否有办法检查查询是否产生一些结果,如果没有则执行查询。
例子:
(SELECT * FROM table WHERE id=2) IF NO RESULT (SELECT * FROM table WHERE id=4)
编辑
我只需要一个查询,基本上首先我检查是否有带有参数的结果(例如状态=0)如果没有结果我想执行相同的查询,参数更改为状态=2。
希望它可以帮助
更多编辑
基本上我有一个包含操作员和部门的表和另一个包含所有用户的表,首先我检查第一个表中是否有可用的操作员并且它不是在度假,如果没有结果我将从中选择和管理第二个表,但前提是没有可用的运算符
更多更多编辑
此查询检查是否有可用的操作员,但它没有选择管理员
query = "SELECT b.id
FROM ".$SupportUserTable." b
INNER JOIN ".$SupportUserPerDepaTable." a
ON b.id=a.user_id
WHERE a.department_id=? AND b.holiday='0' AND a.user_id!=".$_SESSION['id']."
ORDER BY b.assigned_tickets,b.solved_tickets ASC LIMIT 1";
最新的解决方案
这不是我想要的,但它确实有效,我愿意改进以避免执行两个查询:
$query = "SELECT *
FROM(
(SELECT b.id
FROM ".$SupportUserTable." b
INNER JOIN ".$SupportUserPerDepaTable." a
ON b.id=a.user_id
WHERE a.department_id=? AND b.holiday='0' AND a.user_id!=".$_SESSION['id']."
ORDER BY b.assigned_tickets,b.solved_tickets ASC LIMIT 1)
UNION
(SELECT id
FROM ".$SupportUserTable."
WHERE status='2' AND id!=".$_SESSION['id']."
ORDER BY assigned_tickets,solved_tickets ASC LIMIT 1)
) tab
LIMIT 1
";