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 でどのように実装すればよいのでしょうか? 私の検索では、1 つのクエリで 2 つのテーブルに対して 'WHERE ... LIKE' が実行されます。

前もって感謝します、

マウリッツ

4

1 に答える 1

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

多分?

于 2009-09-21T22:21:43.403 に答える