Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy MySQL zwiera funkcję IF()?

Odpowiedź brzmi TAK.
IF(cond,expr_true,expr_false) w zapytaniu mysql jest zwarty.

Oto test wykorzystujący @variables do udowodnienia faktu:

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;

Wynik to „5” ze wszystkich trzech zapytań SELECT.

Gdyby funkcja JEŻELI () NIE była zwarta, wynikiem byłoby '5' z SELECT #1, '6' z SELECT #2 i '7' z ostatniej "select @var".

Dzieje się tak, ponieważ wyrażenie „prawda” NIGDY nie jest wykonywane, w przypadku wyboru nr 1, a wyrażenie fałszywe nie jest wykonywane w przypadku wyboru nr 2.

Zauważ, że operator „:=” jest używany do modyfikowania @var w zapytaniu SQL (klauzule select,from i where). Możesz uzyskać z tego naprawdę wymyślny/złożony kod SQL. Użyłem @vars do zastosowania logiki „proceduralnej” w zapytaniu SQL.

-- Jorgenson --



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaokrąglić DateTime w MySQL?

  2. Konwertuj datę w formacie MM/DD/RRRR na datę MySQL

  3. Zmień funkcję na PDO

  4. mysql - po wstawieniu zignoruj ​​pobierz klucz podstawowy

  5. Replikacja MySQL zapewniająca wysoką dostępność