mysql like tutorial with syntax
Deze tutorial legt het matchen van patronen uit met behulp van de MySQL LIKE-operator:
Patroonherkenning is een belangrijke functie in bijna alle programmeertalen zoals - Java / C # / Python enz. Die meestal gebruikmaken van het gebruik van reguliere expressies voor patroonvergelijking tegen een gegeven stringinvoer.
MySQL biedt een eenvoudig te gebruiken operator genaamd LIKE, die kan worden gebruikt om de String-waarden te vergelijken met gespecificeerde patronen en die handig is voor het opvragen van grote sets gegevens.
Wat je leert:
MySQL ALS
Syntaxis:
De LIKE-operator wordt samen met de WHERE-component gebruikt in een SELECT-query.
In een eenvoudige zoekopdracht ziet de syntaxis er als volgt uit.
Verschillende componenten van deze syntaxis worden als volgt uitgelegd:
- {column_names}: Dit zijn de kolomnamen die moeten worden weergegeven als uitvoer van de SELECT-query. Deze waarden kunnen * zijn voor het selecteren van alle kolommen of door komma's gescheiden namen van afzonderlijke kolommen.
- {tafel naam}: Dit is de naam van de tabel waarin de query moet worden uitgevoerd.
- {column_with_string_value}: Dit is de kolom waarvan de waarden moeten worden uitgevoerd volgens het opgegeven patroon. Houd er rekening mee dat elke vergelijking wordt gedaan op een kolom die kan worden geconverteerd naar String.
- {match_pattern}: Dit is de overeenkomstuitdrukking waarmee kolomwaarden moeten worden vergeleken. Een voorbeeld van matchpatronen kan zijn: ‘ SM% Dit zou overeenkomen met alle kolomwaarden die beginnen met SM. Voorbeeld: SLIM, GEUR, ROOK, etc.
Net als bij deze query, kan de LIKE-operator zelfs worden gebruikt met complexe query's met JOINS, enz., Aangezien de LIKE slechts een vergelijkingsoperator is en overal kan worden gebruikt waar vergelijking van kolomwaarden mogelijk is.
Notitie: Net als bij LIKE kunnen we ook de genegeerde variant gebruiken, die ‘NIET LIKE’ is. Dus in dit geval retourneren de zoekopdrachten met de operator ‘NIET LIKE’, in plaats van de overeenkomende resultaten te retourneren, resultaten die niet overeenkomen.
MySQL-matchpatronen
LIKE Operator kan samen met 2 soorten patronen worden gebruikt. Deze zijn opgenomen in de onderstaande tabel:
Patroon | |
---|---|
% (Percentage) | Overeenkomen met een willekeurig aantal tekens (inclusief helemaal geen teken) |
_ (Laag streepje) | Komt overeen met een enkel teken |
Nu zullen we enkele voorbeelden zien waarin beide patronen worden gebruikt.
% Overeenkomstpatroon
% patroon wordt gebruikt als u 0 of meer tekens voor of na de plaatsing wilt matchen.
Bijvoorbeeld: als u een string ‘it’ wilt matchen uit een kolom met namen van werknemers. Stel dat er namen zijn zoals: Amit, Anchit, Arpit, Nikita, Smith, enz. We kunnen zien dat alle namen de 'it'-substring hebben. Maar hun positionering is anders.
Stel dat de kolomnaam is namen en de tafelnaam is studentnamen.
Gebruik de volgende voorbeeldscripts voor het maken van gegevens om de database te vullen:
Laten we eens kijken hoe we het% Match-patroon kunnen gebruiken.
Uitgang:
naam |
---|
Amit |
Ankit |
Smith |
Nikita |
Mohit |
Dit betekent nu dat het overeenkomt met een tekenreeks met de subtekenreeks ‘it’ op elke locatie en dat er een willekeurig aantal tekens voor en na de overeenkomst kan zijn. U kunt zien dat alle overeenkomende namen als uitvoer worden geretourneerd.
Herschrijf de zoekopdracht zodat alleen die namen overeenkomen die eindigen op de subtekenreeks ‘it’.
Dus hier hebben we het achterliggende ‘%’ -teken verwijderd en de ‘it’ -reeks aan het einde geplaatst. Dit patroon zou een willekeurig aantal tekens vóór ‘it’ toestaan, maar de tekenreeks moet eindigen met de substring ‘it’.
Uitvoer van de bovenstaande vraag:
naam |
---|
Amit |
Ankit |
Mohit |
Notitie: Het is belangrijk op te merken dat het patroon dat wordt genoemd met het teken ‘%’ niet hoofdlettergevoelig is. Dus voor het bovenstaande voorbeeld, in plaats van ‘% it’ hadden we ‘% IT’ of ‘% It’ kunnen gebruiken, de output zou nog steeds hetzelfde zijn gebleven.
_Match-patroon
Laten we nu eens kijken hoe we het ‘_’ Match-patroon kunnen gebruiken. We weten dat ‘_’ precies één teken toestaat.
Stel dat we alle 5-letternamen uit dezelfde tabel willen opvragen (student_names).
Om in dit geval de ‘_’ patroonovereenkomst te gebruiken, hebben we vijf _ (onderstrepingstekens) gespecificeerd samen met LIKE Pattern, die alleen overeenkomen met namen die 5 tekens lang zijn.
Uitgang:
naam |
---|
Ankit |
Mohit |
Smith |
Laten we naar een ander voorbeeld kijken. Stel dat we alle 5 letternamen willen vinden die eindigen op de substring ‘it’
Hier hebben we 3 ‘_’ (onderstrepingstekens) gebruikt en de daadwerkelijke deelstring die moet worden vergeleken.
Uitgang:
naam |
---|
Ankit |
Mohit |
Smith |
Combinatie van% en _ patroonovereenkomst
In deze sectie zullen we bespreken hoe we de% en _ patroonmatchers kunnen matchen.
software om video's van elke website te downloaden
Stel dat we alle namen willen vinden met de subtekenreeks ‘it’ en die precies 2 tekens na het woord ‘it’ kunnen hebben
Hier hebben we zowel% als _ matchpatronen gecombineerd om de exacte match te vinden.
Uitgang:
naam |
---|
Smith |
Nikita |
Met behulp van NOT LIKE
NOT LIKE is de exacte negatie van wat de LIKE-operator retourneert. d.w.z. het retourneert alle records / rijen die niet overeenkomen met de expressie voor patroonovereenkomst.
Voorbeeld: Stel dat we alle namen willen vinden die niet uit 4 tekens bestaan.
Uitgang:
naam |
---|
Ankit |
Smith |
Nikita |
Mohit |
U kunt in de bovenstaande uitvoer zien dat het alleen die namen retourneert die niet uit 4 tekens bestaan.
MySQL LIKE gebruiken met ESCAPE-teken
Hier zullen we zien hoe we ESCAPE-tekens kunnen gebruiken samen met de patroonovereenkomst.
Stel dat we in een hypothetische situatie namen hebben die daadwerkelijk% en _ tekens bevatten en we willen die namen vinden, dan moeten we daadwerkelijk overeenkomen met% & _. Dit kan worden bereikt met behulp van een ontsnappingskarakter.
Notitie: De standaardwaarde van het escape-teken is ‘’ (backslash)
Voeg wat gegevens toe aan de studentnamen-tabellen die namen bevatten met% en _ tekens.
Hieronder staan enkele voorbeelden om dit beter te begrijpen.
# 1) Zoek alle namen met een% -teken.
Uitgang:
naam |
---|
Darre% n |
Dane_Sherman% |
#twee) Zoek alle namen met een _-teken
Uitgang:
naam |
---|
Julia Roberts |
Dane_Sherman% |
In beide bovenstaande voorbeelden kunt u zien dat we een escape-teken hebben gebruikt om de tekens% en _ te noemen - d.w.z. voor het matchen van een% -teken zelf hebben we een escape-teken vóór het% -teken gebruikt, d.w.z. zoals ‘\%’
Met behulp van een ontsnappingskarakter naar keuze
Laten we nu proberen het vorige voorbeeld uit te breiden.
Met MySQL kunt u uw eigen ESCAPE-teken specificeren dat MySQL moet gebruiken tijdens het zoeken naar patroonherkenning.
Laten we proberen het Escape-teken bij te werken naar ‘!’ In plaats van de standaardwaarde ‘’
Uitgang:
naam |
---|
Julia Roberts |
Dane_Sherman% |
In het bovenstaande voorbeeld hebben we het escape-teken overschreven naar ‘!’ En hetzelfde gebruikt in de patroonovereenkomst ‘%! _%’ - waar we een ‘_’ -teken in de naam willen matchen.
Veel Gestelde Vragen
V # 1) Wat betekent %% in SQL?
Antwoord: ‘%%’ komt niet specifiek overeen met iets. Het komt overeen met slechts 1% karakter. Als u het ‘%’ -teken zelf in de kolomwaarde wilt matchen, kunt u het gebruiken met een escape-teken dat de standaardwaarde ’heeft.
Stel dat u een kolomwaarde wilt matchen met een ‘%’ -teken, dan kunt u patroonovereenkomst schrijven als - ALS ‘% %%’ (let op een extra backslash vóór het middelste percentage (%).
Q # 2) Wat is een jokerteken in MySQL?
Antwoord: MySQL LIKE Operator werkt met 2 jokertekens in MySQL om verschillende manieren van patroonvergelijking te bereiken.
Dit zijn:
- - Dit komt overeen met een willekeurig aantal tekens (inclusief nul)
- - Dit komt overeen met precies één teken
V # 3) Hoe schrijf ik een LIKE-query in MySQL?
Antwoord: LIKE is een eenvoudige operator die over het algemeen samen met de WHERE-component wordt gebruikt in een SELECT-query. Het wordt gebruikt om de kolomwaarden af te stemmen op het opgegeven patroon.
Voorbeeld: Stel dat er een tabel is met werknemer_details, en het heeft een kolom met de naam adres die huisnummer, straatnaam, enz. Bevat. U wilt alle werknemers vinden die de straat hebben gedefinieerd als ‘Oxford Lane’ als hun adres.
We kunnen de LIKE-operator gebruiken om zo'n query te schrijven.
Houd er rekening mee dat de String-patronen zijn niet hoofdlettergevoelig terwijl wordt vergeleken met de opgegeven overeenkomstuitdrukking.
V # 4) Hoe specificeer ik een ander Escape-teken samen met de LIKE-operator?
Antwoord: MySQL biedt een manier om een aangepast Escape-teken te specificeren dat het standaardteken overschrijft, d.w.z.
Hier is een voorbeeld dat het escape-teken zou veranderen in ‘!’ Voor de uitvoering van de query.
In de bovenstaande zoekopdracht hebben we ‘!’ Als het escape-teken genoemd en hetzelfde gebruikt in de overeenkomstuitdrukking.
V # 5) Hoe kan ik een echt% of _ teken matchen met de LIKE Operator?
Antwoord: De tekens zoals% en _ zijn speciale jokertekens die, wanneer ze daadwerkelijk moeten worden vergeleken als onderdeel van de string, moeten worden geëscaped.
Het standaard escape-teken is ‘’ en moet worden gebruikt net voordat het jokerteken wordt vermeld.
welke van de volgende zaken is geen voorwaarde om een testcase te beschrijven?
Stel dat we het teken ‘_’ willen matchen met een bepaalde kolomwaarde, dan kunnen we de overeenkomstuitdrukking schrijven als - LEUK VINDEN '%\_%'
Gevolgtrekking
In deze tutorial hebben we geleerd over de verschillende manieren waarop we de LIKE-operator (of de genegeerde versie, d.w.z. NOT LIKE) kunnen gebruiken.
We hebben ook de ondersteunde jokertekens besproken, d.w.z. _ en% en hoe ze kunnen worden ontsnapt als ze deel moeten uitmaken van de string om te worden doorzocht / gematcht.
De LIKE-operator is een krachtige functionaliteit die wordt geleverd door MySQL en wordt over het algemeen gebruikt om records te filteren tijdens het opvragen van grote sets gegevens.
Aanbevolen literatuur
- MySQL Create Bekijk zelfstudie met codevoorbeelden
- MySQL UNION - Uitgebreide tutorial met Union-voorbeelden
- MySQL Create Table Tutorial met voorbeelden
- MySQL invoegen in tabel - Verklaring syntaxis en voorbeelden invoegen
- Unix Cat Command Syntax, opties met voorbeelden
- C # Regex-zelfstudie: wat is een C # reguliere expressie
- C ++ regex-zelfstudie: reguliere expressies in C ++ met voorbeelden
- Java Regex-zelfstudie met voorbeelden van reguliere expressies