Điều này dường như hoạt động từ một thử nghiệm nhanh mà tôi vừa thực hiện và tránh sự cần thiết phải kiểm tra sự tồn tại của x=1
hai lần.
SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1
UNION ALL
SELECT *
FROM mytable
WHERE
FOUND_ROWS() = 0 AND x = 2;
Chỉnh sửa:Sau khi bạn làm rõ câu hỏi, rõ ràng 2 truy vấn sẽ cần phải tương thích với UNION để hoạt động ở trên.
Câu trả lời cho câu hỏi cập nhật của bạn là Không. Điều này không thể thực hiện được trong một truy vấn. Bạn sẽ cần sử dụng một số logic thủ tục có điều kiện để thực hiện truy vấn mong muốn.