Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:Jika saya menggunakan fungsi dalam kueri SQL lebih dari satu kali, apakah akan dihitung ulang setiap kali?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jumlah kolom dalam menggunakan mysqli dan php

  2. menyebarkan data mysql di beberapa disk

  3. Hitung perbedaan waktu antara dua cap waktu di mysql

  4. Konversi SQL ke SQL alkimia

  5. Sintaks MYSQL tidak mengevaluasi tidak sama dengan di hadapan NULL