sql >> Databáze >  >> RDS >> Mysql

MySQL, REGEXP - Najděte slova, která obsahují pouze následující přesná písmena

Problém je v tom, že kontrolujete přítomnost l dvakrát. To je stejné jako... "Obsahuje l . Ano, stále obsahuje l ." Nekontroluje dva z nich. Zde je alternativa...

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'

To by mělo odpovídat všem slovům obsahujícím v , dva l 's, e , o a y .

Takže při každém dalším výskytu stejného písmene stačí k dotazu připojit další písmeno .*. Například lullaby potřebuje následující dotaz:

    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'

Podívejte se, jak přidám 3 *.l protože existují 3 výskyty l ve slově lullaby .

Totéž lze provést pomocí LIKE místo REGEXP . Zde je ekvivalentní dotaz pro původní otázku...

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. Zjistěte, zda je hodnota číslo v MySQL

  2. Jak vypočítat celkovou cenu objednávky?

  3. Jaký je rozdíl mezi mysql drop partition a zkrácením oddílu

  4. ListView neukazuje správné obrázky, které jsou ve výkresu podle jejich názvu ve sqlite