タグ

ブックマーク / next4us-ti.hatenablog.com (1)

  • イコール(=)vs ライク(LIKE) の巻 - 41から始めました

    ある日のこと 社内のHさんから質問が。 外注さんが、文字列である建物名の完全一致検索するときのSQLで `... where building like ? ...` って書いてきたので 「 `=` じゃないのは何故?」って聞いたら↓を意図したと回答がありました。 https://dev.mysql.com/doc/refman/5.6/ja/string-comparison-functions.html ぶっちゃけ、初めてこの仕様を知ったんですが、ご意見いただけませんでしょうか? ここでいうこの仕様とは以下のこと SQL 標準では、LIKE は文字ごとに一致を実行するため、= 比較演算子とは異なる結果が生成される可能性があります。 特に、末尾の空白は重要です。ただし、= 演算子を使って実行される CHAR や VARCHAR の比較には当てはまりません。 マジか?イコールは空白無視する

    tsekine
    tsekine 2019/03/30
    CHARは固定幅なので、むしろ 'a' を INSERT しても 'a ' が入ってて、取り出す時に勝手にTRIMされるというAPIの感覚。固定幅レコードを扱ったことがない若者だと、そういう感覚はないと思う。
  • 1