Jawabannya adalah YA.
JIKA(cond,expr_true,expr_false) dalam kueri mysql dihubung pendek.
Berikut tes, menggunakan @variables untuk membuktikan fakta:
SET @var:=5;
SELECT IF(1 = 0, (@var:[email protected] + 1), @var ); -- using ':=' operator to modify 'true' expr @var
SELECT IF(1 = 1, @var, (@var:[email protected] + 1) ); -- using ':=' operator to modify 'false' expr @var
SELECT @var;
Hasilnya adalah '5' dari ketiga kueri SELECT.
Jika fungsi IF() TIDAK hubung singkat, hasilnya adalah '5' dari SELECT #1, dan '6' dari SELECT #2, dan '7' dari "select @var" terakhir.
Ini karena ekspresi 'true' TIDAK PERNAH dieksekusi, di pilih #1 dan ekspresi salah juga tidak dieksekusi untuk pilih #2.
Perhatikan bahwa operator ':=' digunakan untuk memodifikasi @var, dalam kueri SQL (klausa pilih,dari, dan tempat). Anda bisa mendapatkan SQL yang sangat mewah/kompleks dari ini. Saya telah menggunakan @vars untuk menerapkan logika 'prosedural' dalam kueri SQL.
-- J Jorgenson --