sql >> Database teknologi >  >> RDS >> Mysql

MySQL, REGEXP - Find ord, der kun indeholder følgende nøjagtige bogstaver

Problemet her er, at du tjekker for tilstedeværelsen af ​​l to gange. Det er det samme som... "Den indeholder en l . Jep, indeholder stadig en l ." Det tjekker ikke efter to af dem. Her er et alternativ...

SELECT word FROM us_6 WHERE
word REGEXP 'v' AND
word REGEXP 'l.*l' AND
word REGEXP 'e' AND
word REGEXP 'o' AND
word REGEXP 'y'

Dette bør matche alle ord, der indeholder en v , to l 's, en e , en o og en y .

Så hver anden forekomst af det samme bogstav skal du blot tilføje et andet .*-bogstav til forespørgslen. For eksempel lullaby har brug for følgende forespørgsel:

    SELECT word FROM us_7 WHERE
    word REGEXP 'l.*l.*l' AND
    word REGEXP 'u' AND
    word REGEXP 'a' AND
    word REGEXP 'b' AND
    word REGEXP 'y'

Se, hvordan jeg tilføjer 3 *.l fordi der er 3 forekomster af l i ordet lullaby .

Det samme kan også opnås med LIKE i stedet for REGEXP . Her er en tilsvarende forespørgsel til det oprindelige spørgsmål...

SELECT word FROM us_6 WHERE
word LIKE '%v%' AND
word LIKE '%l%l%' AND
word LIKE '%e%' AND
word LIKE '%o%' AND
word LIKE '%y%'


  1. Hvordan gemmer jeg et billede i MySQL?

  2. MySql forskel mellem to tidsstempler i dage?

  3. psql - gem resultater af kommando til en fil

  4. MySQL-forespørgsel IN()-klausul Langsom på indekseret kolonne