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

Как да напишете MySQL заявка, където A съдържа (a или b)

Две опции:

  1. Използвайте LIKE ключова дума, заедно със знаци за проценти в низа

    select * from table where field like '%a%' or field like '%b%'.
    

    (забележка:Ако вашият низ за търсене съдържа знаци за проценти, ще трябва да ги избегнете)

  2. Ако търсите по-сложна комбинация от низове, отколкото сте посочили в примера си, можете да използвате регулярни изрази (regex):

    Вижте ръководството на MySQL за повече информация как да ги използвате:http:/ /dev.mysql.com/doc/refman/5.1/en/regexp.html

От тях с помощта на LIKE е най-обичайното решение - това е стандартен SQL и често се използва. Regex се използва по-рядко, но е много по-мощен.

Имайте предвид, че с която и опция да изберете, трябва да сте наясно с възможните последици за производителността. Търсенето на поднизове като този ще означава, че заявката ще трябва да сканира цялата таблица. Ако имате голяма таблица, това може да доведе до много бавна заявка и никакво количество индексиране няма да помогне.

Ако това е проблем за вас и ще трябва да търсите едни и същи неща отново и отново, може да предпочетете да направите нещо като добавяне на поле за флаг към таблицата, което указва, че полето за низ съдържа съответния под- струни. Ако поддържате това поле за флаг актуално, когато вмъквате запис за актуализиране, можете просто да направите заявка за флага, когато искате да търсите. Това може да бъде индексирано и ще направи заявката ви много по-бърза. Дали си струва усилията да направите това, зависи от вас, това ще зависи от това колко лоша е производителността с помощта на LIKE .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL InnoDB Cluster 8.0 - Пълен преглед на операцията:Част втора

  2. Конвертирайте MySQL база данни от латински в UTF-8

  3. Използване на шел скрипт за вмъкване на данни в отдалечена база данни MYSQL

  4. Изтрийте ред в mysql и свързан от папката

  5. Значение на Избор на таблици, оптимизирани в плана MySQL Explain