WEBシステム開発・デザイン制作などすべての作業を一貫してご提供しております。(大阪・東京近辺)

WEBシステム開発/MySQLで文字列を大文字、小文字を区別して検索する

varchar型でパスワードなどを設定している場合、検索する文字列が
大文字、小文字関係なく同一のものだと判断されます。

どうやらMySQLは標準でこのような仕様になっているみたいですね。
長年システム開発を行っておりますが、このような仕様があるのだと
初めて気付かされたました。。。

フィールドのユニーク設定を行っている場合、データのinsert,updateにて、そのまま
ユニークが確保されるので、特に問題ないと言えば無いのですが

万が一ユニーク設定になっていない場合は、
複数のアカウントID、パスワードが存在してしまい、ユーザーの区別ができませんよね・・・。

フォームの入力値を元に、acount_idを検索する時を例にとれば

WHERE BINARY acount_id=’$acount_id’

などのように、acount_idの前にBINARYを付けてSELECTすれば大文字、小文字を区別してSELECT可能です。