Mysql
 sql >> Database >  >> RDS >> Mysql

Come faccio a selezionare in base a un intervallo di caratteri iniziali?

Più veloce di Regular expressions e SUBSTRING() chiamate di funzione. Questo utilizzerà l'indice di symbolName :

WHERE symbolName >= 'A' 
  AND symbolName < 'G'

C'è un problema con la sensibilità alle maiuscole, però. Vuoi nomi che inizino con a..f anche tu o no?

Se vuoi solo nomi che iniziano con maiuscolo e la tabella ha utf8 set di caratteri, utilizzare:

WHERE symbolName >= 'A' COLLATE utf8_bin
  AND symbolName < 'G' COLLATE utf8_bin

Per altri set di caratteri, usa il corrispondente _bin confronto.