1

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

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

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

但是我如何用 DBIx::Class 来实现它呢?我的搜索在一个查询中对两个表执行“WHERE ... LIKE”。

提前致谢,

毛里茨

4

1 回答 1

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

也许?

于 2009-09-21T22:21:43.403 回答