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

Jak znaleźć najmniej niezerową kolumnę w jednym konkretnym wierszu w SQL?

Niestety (w twoim przypadku) zachowanie LEAST zostało zmienione w MySQL 5.0.13 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least ) - używane do zwracania NULL tylko wtedy, gdy wszystkie argumenty są NULL.

Ta zmiana została nawet zgłoszona jako błąd:http://bugs.mysql.com/ bug.php?id=15610 Ale poprawka dotyczyła tylko dokumentacji MySQL, wyjaśniającej nowe zachowanie i brak kompatybilności.

Twoje rozwiązanie było jednym z zalecanych obejść. Innym może być użycie operatora IF:

SELECT IF(Col1 IS NULL OR Col2 IS NULL, COALESCE(Col1, Col2), LEAST(Col1,Col2))


  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 pobrać liczbę wierszy w PHP w bazie danych Mysql?

  2. Wstawianie czasu do bazy danych

  3. Pomiń tabele w mysqldump na podstawie wzorca

  4. Jak używać If Then Else w zapytaniu aktualizacyjnym MySQL?

  5. Jak przekonwertować cały zestaw znaków bazy danych MySQL i sortowanie do UTF-8?