sql >> Database >  >> RDS >> Mysql

IF... ELSE in WHERE-clausule MySQL

De syntaxis voor IF is:

 IF(test_expr, then_expr, else_expr)

dus je zou iets kunnen doen als IF(test1, result1, IF(test2, result2, else_result)) maar het zou niet erg leesbaar zijn, dus daar is de CASE uitdrukking voor dat doel.

CASE WHEN  test1 THEN result1
WHEN test2 THEN result2
ELSE else_result END

Als u een geselecteerde kolom wilt conditioneren, kunt u de IF . gebruiken direct in de geselecteerde velden:

SELECT IF(match, nl_column en_column) AS lang 
FROM table

Merk op dat een expressie in een waar-clausule ofwel TRUE . is of FALSE , dus schrijven

IF(expr, TRUE, FALSE)

is hetzelfde als

expr


  1. Fatale fout:oproep naar niet-gedefinieerde functie:MDB2_Driver_MYSQL::getAll()

  2. Kan PostgreSQL niet verbinden met externe database met pgAdmin

  3. Een tabel maken in de modus voor één gebruiker in postgre

  4. Controleren of een item niet in een andere tabel voorkomt