Задать вопрос
@Dreaded

Как сделать регистронезависимый поиск в MysQL?

Проблема в том, что на запрос типа
SELECT * FROM table WHERE name LIKE '%Name%;
и на запрос
SELECT * FROM table WHERE name LIKE '%name%;
БД дает разные результаты. Посмотрел в поиске на тостере - уже 3 года назад задавали подобный вопрос - но решение так и не нашли.
кодировка таблицы, и кодировка базы стоит utf8_general_ci.

update: Добавлю немного информации:
5b01e7817953e152603868.jpeg
Если я делаю запрос через консоль MySql в таком виде:
SELECT * FROM table WHERE name LIKE '%name%' COLLATE utf8_general_ci;

То запрос перестаёт зависеть от регистра. Но возникает следующая проблема. Если я делаю этот запрос через php скрипт:
$query = "SELECT * FROM table WHERE name LIKE ? OR description LIKE ? COLLATE utf8_general_ci ";
	$stmt = mysqli_prepare($connection, $query);
	mysqli_stmt_bind_param($stmt, 'ss', $searchQuery, $searchQuery);
	mysqli_stmt_execute($stmt);

Возникает следующая ошибка :
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'binary'
  • Вопрос задан
  • 4325 просмотров
Подписаться 1 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы