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

Dlaczego wyniki SELECT różnią się w mysql i sqlite?

Próbowałem zadzierać z niektórymi wariantami zapytania.

Wygląda na to, że sqlite ma błędy w używaniu poprzednio zadeklarowanych pól w zagnieżdżonym HAVING wyrażenia.

W twoim przykładzie avg1 poniżej drugiego posiadania jest zawsze równe 5.0

Spójrz:

select T1.id, avg(T1.score) avg1
from foo T1
group by T1.id
having not exists (
    SELECT 1 AS col1 GROUP BY col1 HAVING avg1 = 5.0);

Ten nie zwraca nic, ale wykonanie następującego zapytania zwraca oba rekordy:

...
having not exists (
    SELECT 1 AS col1 GROUP BY col1 HAVING avg1 <> 5.0);

Nie mogę znaleźć żadnego podobnego błędu na lista biletów sqlite .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pomoc dotycząca rekurencji PHP potrzebna do stworzenia struktury drzewa

  2. Standardowa metoda dla funkcji IF() w MySQL

  3. Wybierz wszystkie wiersze z wyjątkiem jednego w MySQL

  4. Co oznaczają flagi kolumn w MySQL Workbench?

  5. Przydziel miejsca w rankingu (MySQL, PHP)