Cosa sono i caratteri jolly MySQL?
I caratteri jolly MySQL sono caratteri che aiutano a cercare i dati che corrispondono a criteri complessi. I caratteri jolly vengono utilizzati insieme all'operatore di confronto LIKE o all'operatore di confronto NOT LIKE.
Perché usare i caratteri jolly?
Se hai familiarità con l'utilizzo dell'SQL, potresti pensare di poter cercare dati complessi utilizzando la clausola SELECT e WHERE. Allora perché usare i caratteri jolly?
Prima di rispondere a questa domanda, diamo un'occhiata a un esempio. Supponiamo che il reparto marketing della videoteca di Myflix abbia effettuato promozioni di marketing nella città del Texas e desideri ottenere un feedback sul numero di membri
registrato dal Texas, è possibile utilizzare la seguente istruzione SELECT insieme alla clausola WHERE per ottenere le informazioni desiderate.
SELECT * FROM members WHERE postal_address = 'Austin , TX' OR postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';
Come puoi vedere dalla query sopra, la "clausola WHERE" diventa complessa. L'uso dei caratteri jolly, tuttavia, semplifica la query poiché possiamo utilizzare qualcosa di semplice come lo script mostrato di seguito.
SELECT * FROM members WHERE postal_address like '% TX';
In breve, i caratteri jolly ci consentono di sviluppare potenti motori di ricerca nelle nostre applicazioni basate sui dati.
Tipi di caratteri jolly
% la percentuale
% il carattere percentuale viene utilizzato per specificare un modello di zero (0) o più caratteri . Ha la seguente sintassi di base.
SELECT statements… WHERE fieldname LIKE 'xxx%';
QUI
- "Istruzione SELECT ..." è il comando SQL SELECT standard.
- "DOVE" è la parola chiave utilizzata per applicare il filtro.
- "LIKE" è l'operatore di confronto utilizzato insieme ai caratteri jolly
- 'xxx' è qualsiasi modello iniziale specificato come un carattere singolo o più e "%" corrisponde a qualsiasi numero di caratteri a partire da zero (0).
Per apprezzare appieno l'affermazione di cui sopra, diamo un'occhiata a un esempio pratico
Supponiamo di voler ottenere tutti i film che hanno la parola "codice" come parte del titolo, useremmo il carattere jolly percentuale per eseguire una corrispondenza di pattern su entrambi i lati della parola "codice". Di seguito è riportata l'istruzione SQL che può essere utilizzata per ottenere i risultati desiderati.
SELECT * FROM movies WHERE title LIKE '%code%';
L'esecuzione dello script sopra nel workbench MySQL su myflixdb ci dà i risultati mostrati di seguito.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
7 | Davinci Code | NULL | NULL | 6 |
Si noti che anche se la parola chiave di ricerca "codice" appare all'inizio o alla fine del titolo, viene comunque restituita nel nostro set di risultati. Questo perché il nostro codice include un numero qualsiasi di caratteri all'inizio, quindi corrisponde al modello "codice" seguito da un numero qualsiasi di caratteri alla fine.
Modifichiamo ora il nostro script sopra per includere il carattere jolly percentuale solo all'inizio dei criteri di ricerca.
SELECT * FROM movies WHERE title LIKE '%code';
L'esecuzione dello script sopra nel workbench MySQL su myflixdb ci dà i risultati mostrati di seguito.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
7 | Davinci Code | NULL | NULL | 6 |
Notare che solo un record è stato restituito dal database. Questo perché il nostro codice corrisponde a qualsiasi numero di caratteri all'inizio del titolo del film e ottiene solo i record che terminano con il modello "codice".
Spostiamo ora il carattere jolly percentuale alla fine del modello specificato da abbinare. Lo script modificato è mostrato di seguito.
SELECT * FROM movies WHERE title LIKE 'code%';L'esecuzione dello script sopra nel workbench MySQL su myflixdb ci dà i risultati mostrati di seguito.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
Notare che solo un record è stato restituito dal database. Questo perché il nostro codice corrisponde a tutti i titoli che iniziano con il modello "codice" seguito da un numero qualsiasi di caratteri.
_ carattere jolly di sottolineatura
Il carattere jolly di sottolineatura viene utilizzato per abbinare esattamente un carattere . Supponiamo di voler cercare tutti i film che sono stati rilasciati negli anni 200x dove x è esattamente un carattere che potrebbe avere un qualsiasi valore. Useremmo il carattere jolly di sottolineatura per raggiungere questo obiettivo. Lo script seguente seleziona tutti i film usciti nell'anno "200x"
SELECT * FROM movies WHERE year_released LIKE '200_';
L'esecuzione dello script sopra nel workbench MySQL su myflixdb ci dà i risultati mostrati di seguito.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
9 | Honey mooners | Jhon Shultz | 2005 | 8 |
Si noti che solo i film che hanno 200 follower per qualsiasi carattere nell'anno del campo rilasciato sono stati restituiti nel nostro set di risultati. Questo perché il carattere jolly di sottolineatura corrispondeva al modello 200 seguito da un singolo carattere
Non come
L'operatore logico NOT può essere utilizzato insieme ai caratteri jolly per restituire righe che non corrispondono al modello specificato.
Supponiamo di voler ottenere film che non sono stati rilasciati nell'anno 200x. Useremmo l'operatore logico NOT insieme al carattere jolly di sottolineatura per ottenere i nostri risultati. Di seguito è riportato lo script che lo fa.
SELECT * FROM movies WHERE year_released NOT LIKE '200_';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
8 | Underworld-Awakeninh | Michahel Eal | 2012 | 6 |
Notare che solo i film che non iniziano con 200 nell'anno in cui sono stati rilasciati sono stati restituiti nel nostro set di risultati. Questo perché abbiamo utilizzato l'operatore logico NOT nella nostra ricerca di pattern con caratteri jolly.
Parola chiave di fuga.
La parola chiave ESCAPE viene utilizzata per eseguire l' escape di caratteri di corrispondenza del modello come la percentuale (%) e il carattere di sottolineatura (_) se fanno parte dei dati.
Supponiamo di voler controllare la stringa "67%" che possiamo usare;
LIKE '67#%%' ESCAPE '#';
Se vogliamo cercare il film "67% Colpevole", possiamo usare lo script mostrato di seguito per farlo.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Notare il doppio " %% " nella clausola LIKE, il primo in rosso " % " viene considerato come parte della stringa da cercare. L'altro viene utilizzato per abbinare qualsiasi numero di caratteri che seguono.
La stessa query funzionerà anche se usiamo qualcosa di simile
SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';
Sommario
- Potenti strumenti con Mi piace e caratteri jolly che aiutano a cercare dati che corrispondono a schemi complessi.
- Esistono numerosi caratteri jolly che includono la percentuale, il carattere di sottolineatura e la lista di caratteri (non supportati da MySQL) tra gli altri
- Il carattere jolly percentuale viene utilizzato per abbinare qualsiasi numero di caratteri a partire da zero (0) e oltre.
- Il carattere jolly di sottolineatura viene utilizzato per abbinare esattamente un carattere.