クエリが結果を生成するかどうかを確認する方法が mysql にあるかどうかを知りたいのですが、そうでない場合はクエリを実行します。
例:
(SELECT * FROM table WHERE id=2) IF NO RESULT (SELECT * FROM table WHERE id=4)
編集
必要なクエリは 1 つだけです。基本的に最初に、パラメータ (例: status=0) を含む結果があるかどうかを確認します。結果がない場合は、パラメータを status=2 に変更して同じクエリを実行します。
それが役立つことを願っています
詳細編集
基本的に、オペレーターと部門を含むテーブルと、すべてのユーザーを含む別のテーブルがあります。最初のテーブルに利用可能なオペレーターがいるかどうかを確認し、休日ではない場合、結果がない場合は選択してから管理します2 番目のテーブル、ただしオペレーターが利用できない場合のみ
MORE MORE EDIT
このクエリは、使用可能なオペレーターが存在するかどうかを確認しますが、管理者は選択しません
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";
最新の解決策
これはまさに私が探していたものではありませんが、機能します.2つのクエリの実行を回避するための改善を受け入れています:
$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
";