Как мне получить DBIx :: Class для сопоставления с UTF-8? - PullRequest
1 голос
/ 21 сентября 2009

Я пытаюсь реализовать функцию веб-поиска в базе данных MySQL, используя DBIx :: Class :: Resultset . У меня это работает отдельно от одной проблемы: при поиске 'ü' MySQL выполняет поиск как 'u' (другими словами, без умляута). То же самое сделано для других «расширенных символов ASCII». Таблица и соединение в UTF8.

Я провел некоторое тестирование базы данных и нашел решение: добавьте 'collate utf8_bin' предложение where, как в:

 SELECT name FROM my_table WHERE name LIKE '%ü%' COLLATE utf8_bin;

Но как мне реализовать это с DBIx :: Class? Мой поиск делает "ГДЕ ... НРАВИТСЯ" по двум таблицам в одном запросе.

Заранее спасибо,

Mauritz

1 Ответ

3 голосов
/ 22 сентября 2009
$rs->search({
    name => \'LIKE ? COLLATE utf8_bin'
  }, {
    bind => [ '%' . $search_key . '%' ]
  }
);

возможно

...