Berikut eksperimen singkat untuk melihat apa yang terjadi.
create function determin_rand (i integer)
returns float DETERMINISTIC
return rand();
create function not_determin_rand (i integer)
returns float
return rand();
select determin_rand(1) as d1 , determin_rand(1) as d2,
not_determin_rand(1) as nd1, not_determin_rand(1) as nd2
0.00850549154 0.831901073456 0.133989050984 0.174242004752
Karena nilainya berbeda, fungsi dipanggil setiap kali. Dalam fungsi pertama saya menyatakannya deterministik, tetapi tidak ada bedanya.
Saya membuat sqlfiddle untuk Anda coba dengan versi mysql yang berbeda.
http://sqlfiddle.com/#!2/a8536/2