sql >> Databáze >  >> RDS >> Mysql

Proč se výsledky SELECT mezi mysql a sqlite liší?

Pokusil jsem se pohrát s některými variantami dotazu.

Zdá se, že sqlite má chyby v použití dříve deklarovaných polí ve vnořeném HAVING výrazy.

Ve vašem příkladu avg1 mít pod sekundou se vždy rovná 5.0

Podívejte se:

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);

Tento nevrátí nic, ale provedení následujícího dotazu vrátí oba záznamy:

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

Nemohu najít žádnou podobnou chybu v seznamu lístků sqlite .



  1. Vytváření a přístup k databázím a tabulkám OLTP v paměti

  2. Ukázka MySQL pro Visual Basic 6.0 - čtení/zápis

  3. Dotazový plán postgresu s indexy

  4. Dotaz na regulární výraz v režimu spánku