タグ

ブックマーク / saboten009.blogspot.com (1)

  • さぼてん: 【SQL】日本語検索が上手くいかない時【BINARY】

    Pg職に転職したいWebサイト制作。PHPとかMySQLとか。symfony、CakePHPPerl勉強。 データベースで日語を扱う時、条件を指定して検索結果が想定した通りにならないときがある。 SELECT * FROM table_name WHERE name LIKE '%山%' table_name から name に山の文字を含むデータを抽出するSQL文。LIKE によるあいまい検索。%はワイルドカード。0文字以上のあらゆる文字を表す。 UTF-8等マルチバイト文字列を扱う時に生じると思われるが、条件を満たしているデータが検索にヒットしない場合がある。 次のようなSQL文にすると望む結果が得られる。 SQL文が間違っていなければ。 SELECT * FROM table_name WHERE BINARY name LIKE '%山%'

    halohalolin
    halohalolin 2016/02/24
    SELECT文におけるマルチバイト文字列(例えば全角日本語)のWHERE一致判定について、絶対合っているのにヒットしない場合は、WHEREの後ろにBINARYを付けると改善することもある
  • 1