我正在尝试使用DBIx::Class::Resultset在MySQL数据库上实现Web搜索功能。我解决了一个问题:当搜索'ü'时,MySQL将搜索作为'u'(换句话说没有变音符号)。其他'扩展ASCII'字符也是如此。表和连接采用UTF8格式。
我已对数据库进行了一些测试并找到了解决方案:将'collate utf8_bin'添加到where子句中,如:
SELECT name FROM my_table WHERE name LIKE '%ü%' COLLATE utf8_bin;
但是如何使用DBIx :: Class实现它?我的搜索在一个查询中的两个表上执行'WHERE ... LIKE'。
提前致谢,
Mauritz的
答案 0 :(得分:3)
$rs->search({
name => \'LIKE ? COLLATE utf8_bin'
}, {
bind => [ '%' . $search_key . '%' ]
}
);
也许?