Пара различных способов сделать это:
Более быстрый (с точки зрения производительности): select * FROM Table where keyword LIKE '%value%'
Хитрость в этом - размещение%, который является подстановочным знаком, говоря что либо ищите всекоторая заканчивается или начинается с этого значения.
Более гибкой, но (немного) более медленной, может быть функция REGEXP:
Select * FROM Table WHERE keyword REGEXP 'value'
Это использует мощь регулярных выражений, так что вы можетеполучить настолько сложный, как вы хотели с ним.Однако, оставив, как указано выше, вы получите своего рода «Google для бедняков», позволяющий выполнять поиск по частям в полях.
Важная часть появляется, если вы пытаетесь искать имена.Например, любой из них найдет имя «кузнец», если вы будете искать SMI.Тем не менее, ни один не найдет «Джон Смит», если будут разделены поля имени и фамилии.Таким образом, вам нужно будет выполнить конкатенацию для поиска, чтобы найти либо Джона, либо Смита, либо Джона Смита, либо Смита, Джона.Оттуда может получиться снежный ком.
Конечно, если вы выполняете какой-то расширенный поиск, вам придется соответствующим образом обусловить свой запрос.Так, например, если вы хотите выполнить поиск по первому, последнему, адресу, тогда ваш запрос должен быть проверен для каждого:
SELECT * FROM table WHERE first LIKE '%value%' OR last LIKE '%value%' OR address LIKE '%value'