MySQL Tutorial sui caratteri jolly: Mi piace, NON Mi piace, Fuga, ( % ), ( _ )
Che cosa sono MySQL Caratteri jolly?
MySQL I caratteri jolly sono caratteri che aiutano a cercare dati che corrispondono a criteri complessi. I caratteri jolly sono usati insieme all'operatore di confronto LIKE o all'operatore di confronto NOT LIKE.
Perché utilizzare i caratteri jolly?
Se hai familiarità con l'uso di SQL, potresti pensare di poter cercare qualsiasi dato complesso usando 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 Myflix abbia svolto promozioni di marketing nella città del Texas e desideri ricevere un feedback sul numero di membri
che si è registrato in 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 precedente, il "Dove la clausola" diventa complesso. Tuttavia, usare i caratteri jolly semplifica la query poiché possiamo usare 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, ad esempio un singolo carattere o più, e “%” corrisponde a qualsiasi numero di caratteri a partire da zero (0).
Per apprezzare appieno l'affermazione di cui sopra, vediamo un esempio pratico
Supponiamo di voler ottenere tutti i film che hanno la parola "codice" come parte del titolo, utilizzeremo il carattere jolly percentuale per eseguire una corrispondenza del modello 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%';
Eseguendo lo script precedente in MySQL banco di lavoro contro myflixdb ci fornisce 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 |
Tieni presente 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 "codice" del modello seguito da un numero qualsiasi di caratteri alla fine.
Modifichiamo ora il nostro script precedente per includere il carattere jolly percentuale solo all'inizio dei criteri di ricerca.
SELECT * FROM movies WHERE title LIKE '%code';
Eseguendo lo script precedente in MySQL workbench contro myflixdb ci fornisce i risultati mostrati di seguito.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
7 | Davinci Code | NULL | NULL | 6 |
Si noti che dal database è stato restituito un solo record. 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%';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
Notare che è stato restituito un solo record dal database. Questo perché il nostro codice corrisponde a tutti i titoli che iniziano con il modello "code" seguito da un numero qualsiasi di caratteri.
_ carattere jolly di sottolineatura
Viene utilizzato il carattere jolly di sottolineatura corrisponde esattamente a un carattere. Supponiamo di voler cercare tutti i film usciti negli anni 200x dove x è esattamente un carattere che potrebbe avere qualsiasi valore. Utilizzeremmo 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_';
Eseguendo lo script precedente in MySQL workbench contro myflixdb ci fornisce 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 |
Tieni presente che nel nostro set di risultati sono stati restituiti solo i film che hanno 200 follower per qualsiasi personaggio nel campo anno di pubblicazione. Questo perché il carattere jolly di sottolineatura corrispondeva al modello 200 seguito da qualsiasi 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. Utilizzeremo 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 |
Si noti che nel set di risultati sono stati restituiti solo i film che non iniziano con 200 nell'anno di pubblicazione. Questo perché abbiamo utilizzato l'operatore logico NOT nella ricerca del modello con caratteri jolly.
Parola chiave Escape
Viene utilizzata la parola chiave ESCAPE caratteri di corrispondenza del modello di escape come la percentuale (%) e il carattere di sottolineatura (_) se fanno parte dei dati.
Supponiamo di voler verificare la stringa “67%” che possiamo utilizzare;
LIKE '67#%%' ESCAPE '#';
Se vogliamo cercare il film “67% Guilty”, possiamo utilizzare lo script mostrato di seguito per farlo.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Notare il doppio “%%” nella clausola LIKE, la prima in rosso “%" viene trattato come parte della stringa da cercare. L'altro viene utilizzato per abbinare un numero qualsiasi di caratteri che seguono.
La stessa query funzionerà anche se usiamo qualcosa di simile
SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';
Sommario
- Strumenti potenti come Like e Wildcards che aiutano a cercare dati che corrispondono a modelli complessi.
- Sono disponibili numerosi caratteri jolly che includono la percentuale, il carattere di sottolineatura e l'elenco dei caratteri (non supportati da MySQL ) tra gli altri
- Il carattere jolly percentuale viene utilizzato per corrispondere a qualsiasi numero di caratteri a partire da zero (0) e oltre.
- Il carattere jolly di sottolineatura viene utilizzato per corrispondere esattamente a un carattere.