sql >> Database teknologi >  >> RDS >> Mysql

if condition i mysql select statement

For at vide, hvilken der er valgt, kan du gøre noget som dette:

SELECT IF(start_city_name='somecity', 'Departure time', 'Arrival time'),
       IF(start_city_name='somecity', departure_time, arrival_time)
FROM time_schedule;

Du kan ikke rigtig have det som kolonnenavn, hvad hvis der er en række, hvor betingelsen er sand, og en, hvor betingelsen er falsk, hvad skal kolonnenavnet være?

Men hvis du er glad for at dele dem op i 2 kolonner:

SELECT IF(start_city_name='somecity', NULL, arrival_time) AS 'Arrival time',
       IF(start_city_name='somecity', departure_time, NULL) AS 'Departure time'
FROM time_schedule;

Dette minder meget om blot at sige:

SELECT arrival_time, departure_time
FROM time_schedule;

Bortset fra den arrival_time vil være NULL når betingelsen er sand, og departure_time vil være NULL når betingelsen er falsk.



  1. Sådan vælger du top N post fra hver gruppe MySql

  2. Hvordan tester man metoder, der beskæftiger sig med SQLite-database i Android?

  3. Know-how til at gendanne slettede poster i SQL Server

  4. PGTune-alternativer - ClusterControl PostgreSQL-konfiguration