Две опции:
-
Използвайте
LIKE
ключова дума, заедно със знаци за проценти в низаselect * from table where field like '%a%' or field like '%b%'.
(забележка:Ако вашият низ за търсене съдържа знаци за проценти, ще трябва да ги избегнете)
-
Ако търсите по-сложна комбинация от низове, отколкото сте посочили в примера си, можете да използвате регулярни изрази (regex):
Вижте ръководството на MySQL за повече информация как да ги използвате:http:/ /dev.mysql.com/doc/refman/5.1/en/regexp.html
От тях с помощта на LIKE
е най-обичайното решение - това е стандартен SQL и често се използва. Regex се използва по-рядко, но е много по-мощен.
Имайте предвид, че с която и опция да изберете, трябва да сте наясно с възможните последици за производителността. Търсенето на поднизове като този ще означава, че заявката ще трябва да сканира цялата таблица. Ако имате голяма таблица, това може да доведе до много бавна заявка и никакво количество индексиране няма да помогне.
Ако това е проблем за вас и ще трябва да търсите едни и същи неща отново и отново, може да предпочетете да направите нещо като добавяне на поле за флаг към таблицата, което указва, че полето за низ съдържа съответния под- струни. Ако поддържате това поле за флаг актуално, когато вмъквате запис за актуализиране, можете просто да направите заявка за флага, когато искате да търсите. Това може да бъде индексирано и ще направи заявката ви много по-бърза. Дали си струва усилията да направите това, зависи от вас, това ще зависи от това колко лоша е производителността с помощта на LIKE
.