mysql like tutorial with syntax
Questo tutorial spiega il pattern matching utilizzando l'operatore MySQL LIKE:
Il pattern matching è una caratteristica importante in quasi tutti i linguaggi di programmazione come - Java / C # / Python ecc. Che sfruttano principalmente l'uso delle espressioni regolari per il pattern matching rispetto a un dato input di stringa.
MySQL fornisce un operatore facile da usare chiamato LIKE, che potrebbe essere utilizzato per abbinare i valori String a modelli specificati e sono utili per interrogare grandi set di dati.
Cosa imparerai:
MI PIACE A MySQL
Sintassi:
L'operatore LIKE viene utilizzato insieme alla clausola WHERE in una query SELECT.
In una semplice query, la sintassi appare come di seguito.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
I diversi componenti di questa sintassi vengono spiegati come segue:
- {column_names}: Questi sono i nomi delle colonne da visualizzare come output della query SELECT. Questi valori possono essere * per selezionare tutte le colonne o nomi separati da virgole di singole colonne.
- {table_name}: Questo è il nome della tabella in cui deve essere eseguita la query.
- {column_with_string_value}: Questa è la colonna i cui valori devono essere eseguiti rispetto al modello specificato. Tieni presente che qualsiasi confronto viene eseguito su una colonna che può essere convertita in String.
- {match_pattern}: Questa è l'espressione di corrispondenza rispetto alla quale è necessario confrontare i valori delle colonne. Un campione di pattern di corrispondenza può essere: ' SM% '. Ciò corrisponderebbe a tutti i valori di colonna che iniziano con SM. Esempio: INTELLIGENTE, ODORE, FUMO, ecc.
Simile a questa query, l'operatore LIKE può essere utilizzato anche con query complesse con JOINS, ecc. Poiché LIKE è solo un operatore di confronto e può essere utilizzato ovunque sia possibile il confronto del valore di colonna.
Nota: Simile a MI PIACE, possiamo anche utilizzare la sua variante negata, che è 'NON MI PIACE'. Quindi, in questo caso, invece di restituire i risultati corrispondenti, le query con l'operatore 'NON MI PIACE' restituiranno risultati che non corrispondono.
Modelli di corrispondenza MySQL
L'operatore LIKE può essere utilizzato insieme a 2 tipi di pattern. Questi sono elencati nella tabella seguente:
Modello | |
---|---|
% (Percentuale) | Trova qualsiasi numero di caratteri (incluso nessun carattere) |
_ (Trattino basso) | Corrisponde a un singolo carattere |
Vedremo ora alcuni esempi utilizzando entrambi i pattern.
% Corrispondenza pattern
Il pattern% viene utilizzato quando si desidera far corrispondere 0 o più caratteri dopo o prima del suo posizionamento.
Per esempio: se vuoi far corrispondere una stringa 'it' da una colonna con i nomi dei dipendenti. Supponiamo che ci siano nomi come - Amit, Anchit, Arpit, Nikita, Smith, ecc. Possiamo vedere che tutti i nomi hanno la sottostringa 'it'. Ma il loro posizionamento è diverso.
Supponiamo che il nome della colonna sia nomi e il nome della tabella è student_names.
Utilizzare i seguenti script di creazione dei dati di esempio per popolare il database:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
Vediamo come possiamo utilizzare il pattern% Match.
SELECT * FROM student_names WHERE name LIKE '%it%'
Produzione:
nome |
---|
Amit |
Ankit |
fabbro |
Nikita |
Mohit |
Ciò significa che può corrispondere a una stringa che ha la sottostringa 'it' in qualsiasi posizione e può esserci un numero qualsiasi di caratteri prima e dopo la corrispondenza. Puoi vedere che tutti i nomi corrispondenti vengono restituiti come output.
Riscrivi la query in modo che corrispondano solo i nomi che terminano con la sottostringa 'it'.
SELECT * FROM student_names WHERE name LIKE '%it'
Quindi qui, abbiamo rimosso il segno '%' finale e abbiamo inserito la stringa 'it' alla fine. Questo modello consentirebbe un numero qualsiasi di caratteri prima di 'it', ma la stringa dovrebbe terminare con la sottostringa 'it'.
Risultato della query precedente:
nome |
---|
Amit |
Ankit |
Mohit |
Nota: È importante notare qui che il modello menzionato utilizzando il carattere '%' non fa distinzione tra maiuscole e minuscole. Quindi, per l'esempio precedente, invece di '% it' avremmo potuto utilizzare '% IT' o '% It', l'output sarebbe rimasto lo stesso.
_Match Pattern
Diamo ora un'occhiata a come possiamo utilizzare il modello di corrispondenza '_'. Sappiamo che '_' consente esattamente un carattere.
Supponiamo di voler interrogare tutti i nomi di 5 lettere dalla stessa tabella (student_names).
Per utilizzare il modello di corrispondenza '_' in questo caso, abbiamo specificato cinque _ (trattini bassi) insieme a LIKE Pattern che corrisponderà solo a quei nomi che sono lunghi 5 caratteri.
SELECT * FROM student_names WHERE name LIKE '_____'
Produzione:
nome |
---|
Ankit |
Mohit |
fabbro |
Vediamo un altro esempio. Supponiamo di voler trovare tutti i 5 nomi di lettere che terminano con la sottostringa 'it'
SELECT * FROM student_names WHERE name LIKE '___it'
Qui abbiamo usato 3 '_' (trattini bassi) e la sottostringa effettiva che deve essere abbinata.
Produzione:
nome |
---|
Ankit |
Mohit |
fabbro |
Combinazione di% e _ Pattern Matcher
In questa sezione, discuteremo di come abbinare insieme% e _ pattern matcher.
qual è il miglior pulitore per computer gratuito?
Supponiamo di voler trovare tutti i nomi che hanno la sottostringa 'it' e possono avere esattamente 2 caratteri dopo la parola 'it'
SELECT * FROM student_names WHERE name LIKE '%it_'
Qui abbiamo combinato i pattern di corrispondenza% e _ per trovare la corrispondenza esatta.
Produzione:
nome |
---|
fabbro |
Nikita |
Utilizzando NOT LIKE
NOT LIKE è l'esatta negazione di ciò che restituisce l'operatore LIKE. cioè restituirà tutti i record / righe che non corrispondono all'espressione di corrispondenza del modello.
Esempio: Supponiamo di voler trovare tutti i nomi che non sono lunghi 4 caratteri.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Produzione:
nome |
---|
Ankit |
fabbro |
Nikita |
Mohit |
Come puoi vedere nell'output sopra, restituisce solo quei nomi che non sono lunghi 4 caratteri.
Utilizzo di MySQL LIKE con ESCAPE Character
Qui vedremo come possiamo usare i caratteri ESCAPE insieme al pattern matcher.
Supponiamo in una situazione ipotetica di avere nomi che contengono effettivamente% e _ caratteri e di voler trovare quei nomi, quindi dobbiamo effettivamente abbinare% & _. Ciò può essere ottenuto utilizzando un carattere di fuga.
Nota: Il valore predefinito del carattere di escape è '' (barra rovesciata)
Aggiungi alcuni dati alle tabelle student_names che contengono nomi con% e _ caratteri.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Di seguito sono riportati alcuni esempi per capirlo meglio.
# 1) Trova tutti i nomi che hanno un segno%.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Produzione:
nome |
---|
Darre% n |
Dane_Sherman% |
#Due) Trova tutti i nomi che hanno un segno _
SELECT * FROM student_names WHERE name LIKE '%\_%'
Produzione:
nome |
---|
Julia_Roberts |
Dane_Sherman% |
In entrambi gli esempi precedenti, puoi vedere che abbiamo utilizzato un carattere di escape per menzionare i caratteri% e _, ad esempio per trovare una corrispondenza con un carattere% stesso, abbiamo utilizzato un carattere di escape prima del segno%, ad esempio come '\%'
Utilizzando un carattere di fuga di tua scelta
Ora proviamo a estendere l'esempio precedente.
MySQL ti permette di specificare il tuo carattere ESCAPE che MySQL dovrebbe usare durante l'esecuzione della ricerca di pattern matching.
Proviamo ad aggiornare il carattere Esc in '!' Invece del valore predefinito ''
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Produzione:
nome |
---|
Julia_Roberts |
Dane_Sherman% |
Nell'esempio precedente, abbiamo sovrascritto il carattere di escape in '!' E abbiamo utilizzato lo stesso nel pattern matcher '%! _%', Dove vogliamo trovare una corrispondenza con un carattere '_' nel nome.
Domande frequenti
D # 1) Cosa significa %% in SQL?
i migliori siti web per scaricare video di YouTube
Risposta: '%%' non corrisponderà a nulla di specifico. È equivalente ad avere solo l'1% di caratteri. Se desideri far corrispondere il carattere '%' stesso nel valore della colonna, puoi utilizzarlo con un carattere di escape che ha un valore predefinito di '.
Supponi di voler abbinare un valore di colonna con un carattere '%', puoi scrivere la corrispondenza del modello come - LIKE '% %%' (nota una barra rovesciata in più prima del carattere di percentuale centrale (%).
D # 2) Cos'è un carattere jolly in MySQL?
Risposta: L'operatore MySQL LIKE funziona con 2 caratteri jolly in MySQL per ottenere diversi modi di corrispondenza dei modelli.
Questi sono:
- % - Questo corrisponderebbe a qualsiasi numero di caratteri (incluso zero)
- _ - Questo corrisponderebbe esattamente a un carattere
D # 3) Come scrivo una query LIKE in MySQL?
Risposta: LIKE è un operatore semplice generalmente utilizzato insieme alla clausola WHERE in una query SELECT. Viene utilizzato per abbinare i valori della colonna al pattern specificato.
Esempio: Supponiamo che ci sia una tabella con i dettagli dei dipendenti e una colonna denominata indirizzo che contiene il numero civico, il nome della via e così via. Desideri trovare tutti i dipendenti che hanno la via definita come 'Oxford Lane' come indirizzo.
Possiamo usare l'operatore LIKE per scrivere una query di questo tipo.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Si prega di notare che gli schemi di stringa sono case insensitive mentre viene confrontato con l'espressione di corrispondenza specificata.
D # 4) Come specificare un diverso carattere Escape insieme all'operatore LIKE?
Risposta: MySQL fornisce un modo per specificare un carattere Escape personalizzato che sovrascriverebbe quello predefinito, ad esempio
Ecco un esempio che cambierebbe il carattere di escape in '!' Per l'esecuzione della query.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
Nella query precedente, abbiamo menzionato '!' Come carattere di escape e abbiamo utilizzato lo stesso nell'espressione di corrispondenza.
D # 5) Come abbinare un carattere% o _ effettivo utilizzando l'operatore LIKE?
Risposta: I caratteri come% e _ sono caratteri jolly speciali che quando è effettivamente necessario trovare una corrispondenza come parte della stringa, è necessario eseguire l'escape.
Il carattere di escape predefinito è '' e deve essere utilizzato appena prima di menzionare il carattere jolly.
Supponiamo di voler confrontare il carattere '_' con un dato valore di colonna, quindi possiamo scrivere l'espressione di corrispondenza come - PIACE '%\_%'
Conclusione
In questo tutorial, abbiamo appreso i diversi modi in cui possiamo utilizzare l'operatore LIKE (o la versione negata, ovvero NOT LIKE).
Abbiamo anche discusso i caratteri jolly supportati, ad esempio _ e%, e come è possibile eseguire l'escape se devono far parte della stringa per essere cercati / abbinati.
L'operatore LIKE è una potente funzionalità fornita da MySQL e viene generalmente utilizzato per filtrare i record durante l'interrogazione di grandi set di dati.
Lettura consigliata
- Tutorial MySQL Create View con esempi di codice
- MySQL UNION - Tutorial completo con esempi di unione
- Tutorial sulla creazione di tabelle in MySQL con esempi
- MySQL Insert Into Table - Inserisci sintassi ed esempi di istruzioni
- Sintassi dei comandi Cat Unix, opzioni con esempi
- Esercitazione sulle espressioni regolari di C #: che cos'è un'espressione regolare di C #
- Esercitazione sulle espressioni regolari C ++: espressioni regolari in C ++ con esempi
- Tutorial Java Regex con esempi di espressioni regolari