sql >> Database >  >> RDS >> MariaDB

Hoe NIET RLIKE werkt in MariaDB

In MariaDB, 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 je de string test.

Het is het equivalent van het volgende doen:

NOT (expr RLIKE pat)

Voorbeeld

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

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

Resultaat:

+-----------------------------+
| 'Coffee' NOT RLIKE '^C.*e$' |
+-----------------------------+
|                           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$');

Resultaat:

+-------------------------------+
| NOT ('Coffee' RLIKE '^C.*e$') |
+-------------------------------+
|                             0 |
+-------------------------------+

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 |
+-------+-----------+

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

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

  1. RLIKE is een synoniem van de REGEXP operator.
  2. NOT RLIKE is het equivalent van NOT REGEXP .
  3. RLIKE en REGEXP 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)

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";

Resultaat:

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

  1. Hoe Oracle EBS Auditing in te stellen

  2. Heeft Oracle een gefilterd indexconcept?

  3. utl_file.fopen Parameters in Oracle

  4. mysql_fetch_row() versus mysql_fetch_assoc() versus mysql_fetch_array()