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

Zapytanie SQL, wybierz tylko, jeśli kolumna nie jest pusta, w przeciwnym razie nie wybieraj

Jeśli chcesz uzyskać wiersz z dwiema kolumnami, gdy istnieją dwie kolumny inne niż null i 1, jeśli jest tylko jedna, musisz dynamicznie utworzyć zapytanie.

Jeśli chcesz zawsze mieć 1 kolumnę, w której każdy wiersz zawiera wartość inną niż null, możesz to zrobić za pomocą unii.

SELECT a FROM tbl WHERE a IS NOT NULL AND id = ?
UNION
SELECT b FROM tbl WHERE b IS NOT NULL AND id = ?
UNION
SELECT c FROM tbl WHERE c IS NOT NULL AND id = ?

Jeśli chcesz wiedzieć, z których kolumn pochodzą wartości, możesz zrobić coś takiego:

SELECT 'col a' AS ColName, a FROM tbl WHERE a IS NOT NULL AND id = ?
UNION
SELECT 'col b', b FROM tbl WHERE b IS NOT NULL AND id = ?
UNION
SELECT 'col c', c FROM tbl WHERE c IS NOT NULL AND id = ?

Uwaga:połączenie usuwa również zduplikowane wyniki. Jeśli chcesz zachować duplikaty, użyj UNION ALL .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyzwalacz Mysql do aktualizacji wstawionego wiersza

  2. Zapisywanie znacznika czasu w tabeli mysql za pomocą php

  3. Wartość „0000-00-00” nie może być reprezentowana jako java.sql.Date

  4. Kalendarz rezerwacji Daty przyjazdu i wyjazdu

  5. mysql szukaj segmentu nazwy tabeli