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

MySQL - Fungsi CASE vs IF Statement vs IF

Dari manual , sepertinya if function hanyalah bentuk yang kurang fleksibel dari case ekspresi. Misalnya, Anda dapat menulis:

select if(username = 'darxysaq', 'high', 'low') as awesomeness

Dan yang setara dengan case :

select case when username = 'darxysaq' then 'high' else 'low' end as awesomeness

Tapi case lebih fleksibel. Ini memungkinkan lebih dari satu cabang, seperti:

select case 
       when username = 'darxysaq' then 'high' 
       when username = 'john skeet' then 'medium' 
       else 'low' 
       end as awesomeness

Dan itu bisa bertindak seperti switch :

select case username 
       when 'darxysaq' then 'high' 
       when 'john skeet' then 'medium' 
       else 'low' 
       end as awesomeness

Sekarang if pernyataan adalah binatang yang sama sekali berbeda. Ini adalah pernyataan kontrol dalam prosedur MySQL . Bentuk pernyataan terlihat seperti:

CREATE FUNCTION GetAwesomeness (username varchar(50))
RETURNS varchar(20)
BEGIN
   IF username = 'darxysaq' THEN
      return 'high';
   ELSEIF username = 'john skeet' THEN
      return 'medium';
   ELSE
     return 'low';
   END IF;
END; //

Inilah SQL Fiddle dengan versi pernyataan. Sepertinya Mr Bean tidak seperti yang dia inginkan!

Catatan terakhir:case ekspresi adalah SQL standar dan berfungsi di sebagian besar database. if fungsi ini bukan SQL standar dan tidak akan berfungsi di database lain, seperti SQL Server atau PostgreSQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengeksekusi skrip mysql dengan variabel menggunakan PHP::PDO?

  2. Menghubungkan ke beberapa instance CloudSQL menggunakan proxy Cloud sql?

  3. Pada Pembaruan Kunci Duplikat - Beberapa Kolom

  4. Konversi MySQL ke SQLite

  5. Mencari emoji di MySQL