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

Come usare LIKE in SQL

Problema:

Vorresti trovare una sottostringa che corrisponda a un modello in una stringa.

Esempio:

Il nostro database ha una tabella denominata cliente con i dati nelle seguenti colonne:id , first_name , last_name e city .

id nome cognome città
1 Alan Watson Madrid
2 Lisa Nero Singapore
3 Laura Williams Seattle
4 Milano Mattone Seul

Vediamo alcuni esempi di pattern matching in SQL.

Esempio 1:

Mostriamo il nome, il cognome e la città di ogni cliente il cui nome inizia con la lettera "S".

Soluzione:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%';
cognome nome città
Lisa Nero S ingapore
Milano Mattone S eoul
Laura Williams S mangiare

Abbiamo utilizzato il carattere jolly %, che rappresenta zero o più caratteri sconosciuti. Questo carattere jolly può essere utilizzato ovunque nella stringa.

Esempio 2:

Mostriamo il nome, il cognome e la città di ogni cliente il cui nome della città contiene esattamente cinque caratteri.

Soluzione:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE '_____';

Ecco il risultato:

cognome nome città
Milano Mattone Seoul

Il carattere jolly di sottolineatura può essere utilizzato per rappresentare un singolo carattere sconosciuto. Pertanto, utilizzandone cinque di seguito, possiamo rappresentare tutte le stringhe lunghe cinque caratteri. Nel nostro esempio, l'unica città che corrisponde a quella descrizione è Seoul.

Esempio 3:

Mostriamo il nome, il cognome e la città di ogni cliente la cui città inizia con la lettera "S" e ha la lettera "o" come terzultimo carattere.

Soluzione:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%o__';

Ecco il risultato:

cognome nome città
Lisa Nero S ingapo ri
Milano Mattone S eo ul

La query ha restituito solo due record:Lisa Black di S ingapo re e Milan Brick da S eo ul. Queste città corrispondono allo schema dato. Qui, abbiamo combinato entrambi i caratteri jolly per generare uno schema più specifico:tutte le stringhe che iniziano con una lettera maiuscola 'S' e contenenti un numero qualsiasi di altri caratteri dopo quella, purché il terzultimo carattere sia una lettera minuscola 'o. '

Discussione:

Se desideri selezionare record in cui una stringa corrisponde a un modello specifico, puoi utilizzare un LIKE clausola come condizione in un WHERE clausola. Dopo WHERE , elenca il nome della colonna (ad es. city ) seguito da un LIKE clausola che specifica il modello di stringa (ad es. 'S%o__' ) da cercare.

Come abbiamo visto negli esempi, puoi utilizzare due caratteri speciali noti come caratteri jolly per rappresentare caratteri sconosciuti:

  • Il carattere jolly '%' indica zero o più caratteri.
  • Il carattere jolly '_' indica ogni singolo carattere.

Puoi combinare questi caratteri jolly per ottenere risultati davvero potenti. Puoi anche concatenare più di un LIKE condizione. Infine, puoi usare il NOT operatore per trovare le stringhe che non corrisponde al modello dato.