これは、先ほど行った簡単なテストで機能するようで、x=1
の存在を確認する必要がありません。 2回。
SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1
UNION ALL
SELECT *
FROM mytable
WHERE
FOUND_ROWS() = 0 AND x = 2;
編集:質問を明確にした後、上記が機能するには、明らかに2つのクエリがUNION互換である必要があります。
更新された質問に対する答えは「いいえ」です。これは、単一のクエリでは不可能です。 条件付き手続きロジック を使用する必要があります。 目的のクエリを実行します。