Вот код:
$keyword = '[[:<:]]'.$var.'[[:>:]]';
$query = "SELECT * FROM table WHERE col RLIKE '$keyword'";
$data = mysql_query($query) or die(mysql_error());
Этот скрипт делает первую букву запроса чувствительной к регистру. Как можно избавиться от этого не нарушив функциональность поиска? Пробовал использовать UPPER - ничего не вышло. Спасибо заранее.
Спустя 30 минут, 5 секунд (6.09.2010 - 08:18) linker написал(а):
LIKE
Спустя 4 минуты, 50 секунд (6.09.2010 - 08:23) Gerad написал(а):
Цитата |
LIKE |
Не помогает.
Думаю, что корень проблемы где-то тут:
'[[:<:]]'.$var.'[[:>:]]'
Не очень понимаю, что значат эти двоеточия и скобки.
Спустя 7 минут, 35 секунд (6.09.2010 - 08:31) linker написал(а):
LIKE не чувствителен к регистру в определенных условиях: коллэйшен столбца col не должен быть binary или latin-1 (если мне не изменяет память).
Спустя 7 минут, 21 секунда (6.09.2010 - 08:38) Guest написал(а):
Как я писал в первом посте, у меня чувствительна к регистру только первая буква переменной. Полагаю, тут дело не в like.
Спустя 3 минуты, 45 секунд (6.09.2010 - 08:42) Gerad написал(а):
Ссори, ошибся. Чувствительны все кроме последней. Вообще, у меня везде UTF-8 general ci стоит.
Спустя 10 минут, 58 секунд (6.09.2010 - 08:53) Guest написал(а):
Вот, нашёл ещё тему, там у человека такая же проблема. У меня примерно такие же значения коллэйшн, только коллэйшн сервера. Только я не знаю как его поменять.
Спустя 4 минуты, 47 секунд (6.09.2010 - 08:57) Guest написал(а):
Сделал lower(col) - заработало как нужно. Странно, везде написано, что и к столбцу и к переменной применять нужно.