代码之家  ›  专栏  ›  技术社区  ›  Mauritz Hansen

如何让dbix::class与utf-8进行比较?

  •  1
  • Mauritz Hansen  · 技术社区  · 17 年前

    我尝试在MySQL数据库上使用 DBIx::Class::Resultset . 除了一个问题外,我还有一个问题:当搜索“_¼”时,mysql将搜索结果作为“u”(换句话说,不使用umlaut)。对于其他“扩展的ASCII”字符也是如此。表和连接采用UTF8格式。

    我对数据库做了一些测试,找到了解决方案:添加'collate utf8_bin'the where子句,如下所示:

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

    但是如何用dbix::class实现这个呢?我的搜索在哪里…就像一个查询中的两个表。

    事先谢谢,

    莫里茨

    1 回复  |  直到 17 年前
        1
  •  3
  •   hobbs    17 年前
    $rs->search({
        name => \'LIKE ? COLLATE utf8_bin'
      }, {
        bind => [ '%' . $search_key . '%' ]
      }
    );
    

    也许?