EDIT: Apa yang saya katakan di bawah tentang memerlukan prosedur tersimpan TIDAK BENAR. Coba ini:
SELECT CASE WHEN ( (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000 )
THEN <QUERY A>
ELSE <QUERY B>
END
Ini, memang, ekspresi kasus, dan berfungsi dengan baik di luar proc yang disimpan :-)
Misalnya:
mysql> SELECT CASE WHEN ( 5 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END;
+---------------------------------------------------------------------+
| CASE WHEN ( 5 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END |
+---------------------------------------------------------------------+
| foo |
+---------------------------------------------------------------------+
1 row in set (0.01 sec)
mysql> SELECT CASE WHEN ( 3 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END;
+---------------------------------------------------------------------+
| CASE WHEN ( 3 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END |
+---------------------------------------------------------------------+
| bar |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
Jawaban lama di bawah untuk kepentingan historis, karena sudah mengumpulkan suara positif:
Anda dapat menggunakan yang di bawah ini menurut saya, tetapi hanya di dalam prosedur tersimpan:
CASE (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000
WHEN 1 THEN <QUERY A>
ELSE <QUERY B>
END CASE
Ini adalah CASE
pernyataan, berbeda dari CASE
ekspresi... https://dev.mysql.com/doc /refman/5.0/en/case.html
memiliki lebih banyak detail mengerikan.
Sebenarnya, saya menduga secara umum jika Anda ingin menjalankan kueri yang berbeda secara kondisional, Anda perlu melihat ke prosedur tersimpan -- saya bisa saja salah, tetapi itulah firasat saya saat ini. Jika Anda bisa melakukannya, mungkin dengan ekspresi CASE!
Satu suntingan terakhir:dalam contoh dunia nyata apa pun, saya mungkin akan melakukan bit kondisional dalam aplikasi saya, dan hanya menyerahkan ke SQL (atau ke ORM yang akan menghasilkan SQL saya) setelah saya memutuskan apa yang harus dicari.