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

Mezi příkazy v určitých případech chybí indexy

Pokud jakýkoli takový dotaz vrátí maximálně jeden řádek, znamená to, že (sATON, eATON) rozsahy se nepřekrývají.

Proto a pouze v případě, že se rozsahy nepřekrývají, místo toho můžete použít tento dotaz:

SELECT * 
FROM data2 
WHERE sATON = 
      ( SELECT MAX(sATON)
        FROM data2 
        WHERE sATON <= 1112203488
      )
  AND eATON = 
      ( SELECT MIN(eATON)
        FROM data2 
        WHERE eATON >= 1112203488
      )

nebo dokonce toto (k tomu bude potřeba použít pouze jeden index, sATON jeden):

SELECT * 
FROM data2 
WHERE sATON = 
      ( SELECT MAX(sATON)
        FROM data2 
        WHERE sATON <= 1112203488
      )
  AND eATON >= 1112203488


  1. Vytvořte souhrnné zobrazení v MySQL otočením řádku do dynamického počtu sloupců

  2. Získejte ID tabulky po vložení pomocí ColdFusion a MySQL

  3. Co je IN Logický operátor v SQL Server - SQL Server / TSQL výukový program, část 122

  4. Jak získat záznamy mezi 2 daty v MySQL