mysql like tutorial with syntax
Acest tutorial explică potrivirea modelelor folosind operatorul MySQL LIKE:
Potrivirea modelelor este o caracteristică importantă în aproape toate limbajele de programare, cum ar fi - Java / C # / Python, etc.
MySQL oferă un operator ușor de utilizat numit LIKE, care ar putea fi folosit pentru a potrivi valorile șirului cu modelele specificate și sunt utile pentru interogarea seturilor mari de date.
Ce veți învăța:
MySQL LIKE
Sintaxă:
Operatorul LIKE este utilizat împreună cu clauza WHERE într-o interogare SELECT.
Într-o interogare simplă, sintaxa arată ca mai jos.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
Diferitele componente ale acestei sintaxi sunt explicate după cum urmează:
- {column_names}: Acestea sunt numele coloanelor care trebuie afișate ca rezultat al interogării SELECT. Aceste valori pot fi * pentru a selecta toate coloanele sau numele separate prin virgule ale coloanelor individuale.
- {table_name}: Acesta este numele tabelului în care interogarea trebuie executată.
- {column_with_string_value}: Aceasta este coloana ale cărei valori trebuie executate în raport cu modelul specificat. Rețineți că orice comparație se face pe o coloană care poate fi convertită în șir.
- {match_pattern}: Aceasta este expresia de potrivire cu care valorile coloanei trebuie comparate. Un eșantion de tipare de potrivire poate fi - „ SM% '. Aceasta ar corespunde tuturor valorilor coloanei începând cu SM. Exemplu: SMART, MIROS, FUM etc.
Similar cu această interogare, operatorul LIKE poate fi utilizat chiar și cu interogări complexe cu JOINS, etc. deoarece LIKE este doar un operator de comparație și poate fi utilizat oriunde este posibilă compararea valorii coloanei.
Notă: Similar cu LIKE, putem folosi și varianta sa negată, care este „NOT LIKE”. Deci, în acest caz, în loc să returneze rezultatele de potrivire, interogările cu operatorul „NU Îmi place” vor returna rezultate care nu sunt potrivite.
Modele de potrivire MySQL
Operatorul LIKE poate fi utilizat împreună cu 2 tipuri de modele. Acestea sunt înscrise în tabelul de mai jos:
Model | |
---|---|
% (Procentaj) | Potriviți orice număr de caractere (inclusiv niciun caracter) |
_ (Sublinia) | Se potrivește cu un singur personaj |
Acum vom vedea câteva exemple folosind ambele modele.
% Model de potrivire
% model este utilizat atunci când doriți să potriviți 0 sau mai multe caractere după sau înainte de plasarea acestuia.
De exemplu: dacă doriți să potriviți un șir „el” dintr-o coloană cu nume de angajat. Să presupunem că există nume precum - Amit, Anchit, Arpit, Nikita, Smith etc. Putem vedea că toate numele au șirul „it”. Poziționarea lor este însă diferită.
Să presupunem că numele coloanei este nume iar numele tabelului este nume_student.
Utilizați următoarele exemple de scripturi de creare a datelor pentru a completa baza de date:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
Să vedem cum putem folosi modelul% Match.
SELECT * FROM student_names WHERE name LIKE '%it%'
Ieșire:
Nume |
---|
Amit |
Ankit |
Smith |
Nikita |
Mohit |
Acum, ceea ce înseamnă acest lucru este că se poate potrivi cu un șir care are subșirul „it” în orice locație și poate exista orice număr de caractere înainte și după meci. Puteți vedea că toate numele potrivite sunt returnate ca ieșire.
Rescrieți interogarea pentru a se potrivi doar acele nume care se termină cu șirul „it”.
SELECT * FROM student_names WHERE name LIKE '%it'
Așadar, aici am eliminat semnul „%” final și am plasat șirul „it” la final. Acest model ar permite orice număr de caractere înainte de „it”, dar șirul ar trebui să se termine cu șirul „it”.
Rezultatul interogării de mai sus:
Nume |
---|
Amit |
Ankit |
Mohit |
Notă: Este important de menționat aici că modelul menționat folosind caracterul „%” nu este sensibil la majuscule. Deci, pentru exemplul de mai sus, în loc de „% it” am fi putut folosi „% IT” sau „% It”, rezultatul ar fi rămas în continuare același.
_Model de potrivire
Să aruncăm o privire asupra modului în care putem folosi modelul de potrivire „_”. Știm că „_” permite exact un personaj.
Să presupunem că vrem să interogăm toate cele 5 nume de litere din același tabel (student_names).
Pentru a utiliza potrivitorul de tipuri „_” în acest caz, am specificat cinci _ (punctaje de subliniere) împreună cu modelul LIKE, care se va potrivi doar cu numele care au o lungime de 5 caractere.
SELECT * FROM student_names WHERE name LIKE '_____'
Ieșire:
Nume |
---|
Ankit |
Mohit |
Smith |
Să vedem un alt exemplu. Să presupunem că vrem să găsim toate numele celor 5 litere care se termină cu șirul „it”
SELECT * FROM student_names WHERE name LIKE '___it'
Aici am folosit 3 ‘_’ (subliniere) și șirul propriu-zis care trebuie asortat.
Ieșire:
Nume |
---|
Ankit |
Mohit |
Smith |
Combinând% și _ Pattern Matcher
În această secțiune, vom discuta despre modul în care putem combina potrivirile de tipare% și _.
sisteme de operare open source pentru pc
Să presupunem că vrem să găsim toate numele care au subșirul „it” și pot avea exact 2 caractere după cuvântul „it”
SELECT * FROM student_names WHERE name LIKE '%it_'
Aici am combinat atât modelele de potrivire%, cât și cele _ pentru a găsi potrivirea exactă.
Ieșire:
Nume |
---|
Smith |
Nikita |
Folosind NOT LIKE
NOT LIKE este negarea exactă a ceea ce returnează operatorul LIKE. adică va returna toate înregistrările / rândurile care nu se potrivesc cu expresia de potrivire a modelului.
Exemplu: Să presupunem că vrem să găsim toate numele care nu au 4 caractere.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Ieșire:
Nume |
---|
Ankit |
Smith |
Nikita |
Mohit |
Puteți vedea în rezultatul de mai sus, acesta returnează numai acele nume care nu au o lungime de 4 caractere.
Utilizarea MySQL LIKE cu caracterul ESCAPE
Aici vom vedea cum putem folosi caractere ESCAPE împreună cu modelul de potrivire.
Să presupunem că într-o situație ipotetică avem nume care conțin de fapt% și _ caractere și vrem să găsim acele nume, atunci trebuie să ne potrivim de fapt cu% & _. Acest lucru poate fi realizat folosind un personaj de evadare.
Notă: Valoarea implicită a caracterului de evacuare este „” (Bară inversă)
Adăugați câteva date în tabelele student_names care conțin nume cu% și _ caractere.
cel mai bun instrument de revizuire a codului pentru git
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Mai jos sunt câteva exemple pentru a înțelege mai bine acest lucru.
# 1) Găsiți toate numele care au semnul%.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Ieșire:
Nume |
---|
Darre% n |
Dane_Sherman% |
#Două) Găsiți toate numele care au un semn _
SELECT * FROM student_names WHERE name LIKE '%\_%'
Ieșire:
Nume |
---|
Julia_Roberts |
Dane_Sherman% |
În ambele exemple de mai sus, puteți vedea că am folosit un caracter de evacuare pentru a menționa caracterele% și _ - adică pentru potrivirea cu un caracter% însuși am folosit un caracter de evacuare înainte de semnul% - adică ca „\%”
Folosind un personaj de evadare la alegere
Acum, să încercăm să extindem exemplul anterior.
MySQL vă permite să specificați propriul caracter ESCAPE pe care MySQL ar trebui să îl utilizeze în timpul executării căutării de potrivire a modelelor.
Să încercăm să actualizăm caracterul Escape la „!” În loc de valoarea implicită „”
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Ieșire:
Nume |
---|
Julia_Roberts |
Dane_Sherman% |
În exemplul de mai sus, am suprascris caracterul de evadare la „!” Și am folosit același lucru în potrivirea de tipare „%! _%” - unde vrem să potrivim un caracter „_” în nume.
întrebări frecvente
Q # 1) Ce înseamnă %% în SQL?
Răspuns: „%%” nu se va potrivi cu nimic specific. Este echivalentul a avea doar 1% caracter. Dacă doriți să potriviți caracterul „%” însuși în valoarea coloanei, îl puteți folosi cu un caracter de evacuare care are o valoare implicită de ”.
Să presupunem că doriți să potriviți o valoare a coloanei cu un caracter „%”, puteți scrie potrivirea modelului ca - LIKE „% %%” (observați o bară inversă suplimentară înainte de caracterul procentual mediu (%).
Q # 2) Ce este un wildcard în MySQL?
Răspuns: Operatorul MySQL LIKE funcționează cu 2 caractere wildcard în MySQL pentru a realiza diferite moduri de potrivire a modelelor.
Acestea sunt:
- % - Acest lucru ar corespunde oricărui număr de caractere (inclusiv zero)
- _ - Aceasta s-ar potrivi exact cu un personaj
Î. 3) Cum scriu o interogare LIKE în MySQL?
Răspuns: LIKE este un operator simplu care este utilizat în general împreună cu clauza WHERE într-o interogare SELECT. Este folosit pentru a potrivi valorile coloanei cu modelul specificat.
Exemplu: Să presupunem că există un tabel cu detalii despre angajat și că are o coloană numită adresă care conține nr de casă, numele străzii etc. Doriți să aflați toți angajații care au adresa definită ca „Oxford Lane”.
Putem folosi operatorul LIKE pentru a scrie o astfel de interogare.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Vă rugăm să rețineți că tiparele String sunt insensibil la majuscule în timp ce se potrivesc cu expresia de potrivire specificată.
Q # 4) Cum se specifică un personaj Escape diferit împreună cu Operatorul LIKE?
Răspuns: MySQL oferă o modalitate de a specifica un caracter personalizat de evadare care ar suprascrie cel implicit, adică
Iată un exemplu care ar schimba caracterul de evadare în „!” Pentru executarea interogării.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
În interogarea de mai sus, am menționat „!” Ca personaj de evadare și am folosit același lucru în expresia de potrivire.
Q # 5) Cum se potrivește un% sau un caracter real folosind LIKE Operator?
Răspuns: Caracterele precum% și _ sunt caractere wildcard speciale care, atunci când trebuie să fie asortate ca parte a șirului, trebuie evitate.
Caracterul implicit de scăpare este „” și trebuie utilizat chiar înainte de a menționa caracterul comodin.
Să presupunem că vrem să potrivim caracterul „_” cu o anumită valoare a coloanei, atunci putem scrie expresia potrivirii ca - CA „% _%”
Concluzie
În acest tutorial, am aflat despre diferitele moduri în care putem folosi operatorul LIKE (sau versiunea negată, adică NOT LIKE).
De asemenea, am discutat despre caracterele comodine acceptate, adică _ și% și cum pot fi evadate dacă trebuie să facă parte din șirul care trebuie căutat / asortat.
Operatorul LIKE este o funcționalitate puternică oferită de MySQL și este utilizat în general pentru a filtra înregistrările în timp ce interogați seturi mari de date.
Lectură recomandată
- Tutorial MySQL Create View cu exemple de cod
- MySQL UNION - Tutorial cuprinzător cu exemple de uniune
- Tutorial MySQL Create Table cu exemple
- MySQL Insert Into Table - Inserați sintaxa declarațiilor și exemple
- Sintaxa de comandă Cat Unix, Opțiuni cu exemple
- Tutorial C # Regex: Ce este o expresie regulată C #
- C ++ regex Tutorial: Expresii regulate în C ++ cu exemple
- Tutorial Java Regex cu exemple de expresie regulată