sql >> Database >  >> RDS >> Mysql

Hoe NIET RLIKE werkt in MySQL

In MySQL, NOT RLIKE is een ontkenning van de RLIKE telefoniste.

Met andere woorden, elke keer dat de RLIKE operator retourneert 1 , NOT RLIKE retourneert 0 .

Syntaxis

De syntaxis gaat als volgt:

expr NOT RLIKE pat

Waar expr is de invoerreeks en pat is de reguliere expressie waarvoor u de string test.

Het is het equivalent van het volgende doen:

NOT (expr RLIKE pat)

Voorbeeld 1 – Basisgebruik

Hier is een voorbeeld van het gebruik hiervan in een SELECT verklaring:

SELECT 'Coffee' NOT RLIKE '^C.*e$' AS 'Result';

Resultaat:

+--------+
| Result |
+--------+
|      0 |
+--------+

Hier komt het patroon overeen als de invoerreeks begint met C en eindigt met e . Ja, maar omdat we NOT RLIKE gebruiken , krijgen we een negatief resultaat (0 ).

De bovenstaande verklaring is het equivalent van dit te doen:

SELECT NOT ('Coffee' RLIKE '^C.*e$') AS 'Result';

Resultaat:

+--------+
| Result |
+--------+
|      0 |
+--------+

Voorbeeld 2 – Vergeleken met RLIKE

Hier vergelijken we de resultaten van RLIKE met NOT RLIKE :

SELECT 
  'Coffee' RLIKE '^C.*e$' AS 'RLIKE',
  'Coffee' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';

Resultaat:

+-------+-----------+
| RLIKE | NOT RLIKE |
+-------+-----------+
|     1 |         0 |
+-------+-----------+

Voorbeeld 3 – Een positief resultaat

De vorige voorbeelden resulteerden in 0 voor NOT RLIKE , omdat de string deed echt overeenkomen met het patroon. Hier is een voorbeeld waarbij we een 1 . krijgen , wat aangeeft dat de tekenreeks niet wedstrijd:

SELECT 
  'Funny' RLIKE '^C.*e$' AS 'RLIKE',
  'Funny' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';

Resultaat:

+-------+-----------+
| RLIKE | NOT RLIKE |
+-------+-----------+
|     0 |         1 |
+-------+-----------+

Alternatieven

MySQL bevat veel functies en operators die in wezen hetzelfde doen, en dit geldt ook voor NOT RLIKE .

Ten eerste, RLIKE is een synoniem van de REGEXP_LIKE() functie (zoals REGEXP . is ).

Ten tweede, NOT RLIKE is het equivalent van NOT REGEXP .

Ten derde, RLIKE , REGEXP , en REGEXP_LIKE() kan worden genegeerd door simpelweg de NOT . te gebruiken logische operator.

Daarom zijn alle volgende equivalenten:

expr NOT RLIKE pat
expr NOT REGEXP pat
NOT (expr RLIKE pat)
NOT (expr REGEXP pat)
NOT REGEXP_LIKE(expr, pat)

En hier is een voorbeeld om te demonstreren:

SELECT 
  'Car' NOT RLIKE '^C' AS 'Result 1',
  'Car' NOT REGEXP '^C' AS 'Result 2',
  NOT ('Car' RLIKE '^C') AS 'Result 3',
  NOT ('Car' REGEXP '^C') AS 'Result 4',
  NOT REGEXP_LIKE('Car', '^C') AS 'Result 5';

Resultaat:

+----------+----------+----------+----------+----------+
| Result 1 | Result 2 | Result 3 | Result 4 | Result 5 |
+----------+----------+----------+----------+----------+
|        0 |        0 |        0 |        0 |        0 |
+----------+----------+----------+----------+----------+

  1. Wat is dit JavaScript nodig?

  2. Nieuwe functies van SQL Server 2019

  3. Meerdere sets of arrays van waarden doorgeven aan een functie

  4. Hoe u de huidige weekgegevens in MySQL kunt krijgen