2014-06-18 29 views
8

Sono uno sviluppatore Android e di recente ho trovato la clausola GLOB in SQLite. Non riesco a capire perché abbiamo bisogno di GLOB dato che LIKE è già in atto.Perché abbiamo bisogno della clausola GLOB in SQLite?

Entrambe le clausole hanno caratteri jolly per rappresentare caratteri singoli e multipli. L'unica differenza è che GLOB è case sensitive.

Ma è tutto? Ci sono domande in cui LIKE è una scelta sbagliata o inappropriata? Ci sono casi in cui dobbiamo assolutamente utilizzare GLOBE vs LIKE o viceversa?

risposta

18

La sensibilità alle maiuscole è utile di per sé, poiché funziona meglio con gli indici normali.

Inoltre, GLOB supporta classi di personaggi:

regole globbing:

* corrisponde a qualsiasi sequenza di zero o più caratteri.

? Corrisponde esattamente a un carattere.

[...] Corrisponde a un carattere dall'elenco di caratteri allegato.

[^...] Corrisponde a un carattere non incluso nell'elenco.

Con l'abbinamento [...] e [^...], un personaggio ] può essere incluso nella lista rendendolo il primo carattere dopo [ o ^. È possibile specificare un intervallo di caratteri utilizzando -. Esempio: [a-z] corrisponde a qualsiasi lettera minuscola. Per abbinare un -, fai l'ultimo carattere nella lista.

+1

grazie @CL. Quindi sembra che l'unico extra sia la minima funzionalità di REGEX. – kouretinho