如何让DBIx :: Class与UTF-8进行整理?

时间:2009-09-21 15:17:09

标签: perl dbix-class

我正在尝试使用DBIx::Class::Resultset在MySQL数据库上实现Web搜索功能。我解决了一个问题:当搜索'ü'时,MySQL将搜索作为'u'(换句话说没有变音符号)。其他'扩展ASCII'字符也是如此。表和连接采用UTF8格式。

我已对数据库进行了一些测试并找到了解决方案:将'collat​​e utf8_bin'添加到where子句中,如:

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

但是如何使用DBIx :: Class实现它?我的搜索在一个查询中的两个表上执行'WHERE ... LIKE'。

提前致谢,

Mauritz的

1 个答案:

答案 0 :(得分:3)

$rs->search({
    name => \'LIKE ? COLLATE utf8_bin'
  }, {
    bind => [ '%' . $search_key . '%' ]
  }
);

也许?