У меня есть записи в моей базе данных, которые ищутся с помощью пользовательского ввода, и первоначально этого было достаточно для поиска правильных записей.
"SELECT id FROM plants WHERE Flower LIKE '%" . $sanitizedUserInput . "%'"
Это работало все хорошо и хорошо, но потом все стало происходить так: поиск «красный» позволил получить растения с последовательностью символов «красный» в их поле Flower
, а не просто целое слово «красный». .
Мне предложили просто поставить пробел по обе стороны от ввода пользователя, но я знаю, что произойдет сбой, когда слово является первым словом в поле или последним. Я подумал про себя, я должен использовать регулярное выражение! Для поиска слова, где оно имеет границу слова с обеих сторон.
К сожалению, я никогда раньше не использовал регулярные выражения в базе данных. Как вы строите запрос для поиска в БД с помощью регулярного выражения? Надеюсь, это так просто, как это:
"SELECT id FROM plants WHERE Flower REGEX `/\b" . $sanitizedUserInput . " \b/`"