2

私のMySQLデータベースでは、照合がに設定されていutf8_general_ciます。データベース内のテーブルの照合も確認しました。これにより、大文字と小文字を区別しないクエリが可能になります。ただし、すべてのクエリは依然として大文字と小文字が区別されます。

たとえば、ユーザー名の最初の文字が大文字の場合、このクエリは機能しません。

  SELECT * 
  FROM   users 
  WHERE  username = 'test' 
  AND    password = 'test' 

MySQL 5.5.27 Community エディションを使用しています。ありがとう。

4

3 に答える 3

1

(大文字と小文字を区別しない)に設定された照合順序はci、列ではなく、データの検索方法にのみ影響します。IIRC、列名は大文字と小文字が区別され、テーブル名は区別されません。

データベースの標準命名規則に従ってください。

于 2013-08-03T01:16:34.173 に答える
0

大文字と小文字を区別しないように設定されたデータベースについてはあまり知りませんが、Lower() を使用できます

例えば:

SELECT * FROM users WHERE Lower(username) = 'test' AND lower(password) = 'test'
于 2013-08-03T01:17:45.410 に答える
0

@maurisの回答に従ってください。それ以外の場合は、php で strtolower($username) を使用し、

SELECT * FROM users WHERE LOWER(username) = 'test' AND password = 'test'
于 2013-08-03T01:18:47.700 に答える