sql >> Databasteknik >  >> RDS >> Oracle

Konvertera mellan klausul till joins

Vad du har hört om räckviddssökningar och between i MySQL är helt enkelt inte sant. Här är ett citat från dokumentationen :

Så användningen av ett index är inte förvånande. Det bästa indexet för denna data skulle vara ett sammansatt index på start, end .

Problemet du har är att du har två kolumner start och end . Detta gör frågan lite mer komplicerad.

Följande kan tänkas fungera bättre under vissa omständigheter, med ett index på start och ett separat index på end och en primärnyckel på raderna:

select gt.*
from (SELECT * FROM autumn4.ip WHERE :number >= start) gt join 
     (SELECT * FROM autumn4.ip WHERE :number <= end) lt
     on gt.PRIMARYKEY = lt.PRIMARYKEY;


  1. Hur OCTET_LENGTH() fungerar i MariaDB

  2. Infoga XML från fil i PostgreSQL

  3. hur man använder COALESCE i oracle för att kombinera data från två rader

  4. PHP MySQL över SSL. Kamratcertifikat stämde inte