MySQLのlikeでの「_」の扱い

先ほど、仕事でなぜか違うデータが抽出されるんだけど…という不具合を報告され

よくよく調査したら、

という条件を見つけた。

前任者は、2001_1001_202_100とか、2001_1001_202_の後にコードが付いたデータを抽出したかったのであろうが

この条件だと2001_1001_2023というデータもヒットしてしまう。

これは、likeでは「_」は任意の一文字を意味する記号であるからである。

仕方が無いので、検索条件として使うコードの「_」をエスケープすることで解決した。

Ruby on Railsでの書き方

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*
*

* Copy This Password *

* Type Or Paste Password Here *