Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL, REGEXP - Намерете думи, които съдържат само следните точни букви

Проблемът тук е, че проверявате за наличието на l два пъти. Това е същото като... „Той съдържа l . Да, все още съдържа l ." Това не е проверка за две от тях. Ето алтернатива...

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'

Това трябва да съответства на всички думи, съдържащи v , две l 's, e , o и y .

Така че, всяко друго появяване на същата буква, просто добавете друга .*буква към заявката. Например lullaby се нуждае от следната заявка:

    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'

Вижте как добавям 3 *.l защото има 3 срещания на l в думата lullaby .

Същото нещо може да се постигне и с LIKE вместо REGEXP . Ето еквивалентна заявка за оригиналния въпрос...

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Отделете различна версия на уебсайт

  2. Бързо изградете PHP CRUD интерфейс с PDO Advanced CRUD Generator Tool

  3. Присъединяване към MySQL срещу ИЗПОЛЗВАНЕ?

  4. Премахване на MySQL 5.7 напълно

  5. Максимален брой колони/стойности, които можете да ВМЕСИТЕ В таблица - mysql