MySQL LIKE оператор и PHP переменная - PullRequest
0 голосов
/ 18 ноября 2009

Мне нужен мой следующий код для работы.

Я пытаюсь использовать переменную PHP, а также добавить в нее шаблон [charlist] Wildcard

Может кто-нибудь, пожалуйста, помогите понять, почему это не сработает.

Обычно это работает, если я удаляю подстановочный знак [charlist], но мне нужно, чтобы он нашел все буквы, которые есть в переменной PHP

мой код выглядит следующим образом

LIKE ''[' $searchWord ']%'' 

Ответы [ 2 ]

3 голосов
/ 18 ноября 2009

Чтобы использовать класс символов, вам нужно использовать оператор REGEXP.

Кроме того, после класса символов необходимо указать оператор повторения. % соответствует любой строке (и только для LIKE), но если вы хотите применить ее так, чтобы она соответствовала любой серии букв, содержащихся в вашем классе символов, вам нужно сделать:

$query = '`column` REGEXP "[' . $searchWord  . ']+"';

В качестве альтернативы, используйте * для соответствия 0 или более. (+ равно 1 или более)

0 голосов
/ 18 ноября 2009

Если $ searchWord является массивом, попробуйте его, сначала вызвав implode:

$listOfCharacters = str_split($searchWord, 1);
$implodedString = implode(',', $listOfCharacters;

Имплозированная строка теперь является строкой, разделенной запятой, а не массивом. PHP не конвертирует массивы в строку самостоятельно. Тогда вы, вероятно, можете использовать его как:

LIKE ''[' $implodedString ']%''

Хотя я с подозрением отношусь к использованию здесь без конкатонации строк. Мы пропускаем какой-то кусок кода здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...