1

私は、とりわけ電子メールフィールドを持っているデータベースを持っています。

次のようなSELECTステートメントを実行すると:

SELECT * FROM table_name WHERE email = 'abcd@gmail.com';

...テーブルにエントリが表示されていても、空のセットが返されます。

私が使用するときも同じステートメントが機能します:

SELECT * FROM table_name WHERE fname = 'abcd';

何がうまくいかない可能性がありますか?

4

8 に答える 8

2

trimクエリで使用

SELECT * FROM table_name WHERE TRIM(`email`) = 'abcd@gmail.com';

http://sqlfiddle.com/#!2/90a95/3

于 2013-03-08T05:45:43.323 に答える
0

これを試して、abcd@gmail.comの結果が得られるかどうかを確認してください。

  SELECT * 
  FROM table_name 
  WHERE email LIKE '%abcd@%'
于 2013-03-08T05:53:24.967 に答える
0

小さいながらも意図しない変更を加えた後、動作するようになりました。

私の古いPHPクエリは次のようになります: $res = mysql_query("SELECT * FROM books WHERE email = '$email'");

私の新しく変更されたクエリは次のようになります: $res = mysql_query("SELECT * FROM books WHERE email = ' $email'");

何らかの理由で、mysql_real_escape_string()は最初に1つの余分なスペースを追加していたと思いますが、これはPHPMyAdminには表示されませんでした。

于 2013-03-08T20:16:25.320 に答える
0

クエリでtrimを使用します。スペースは考慮されません。

于 2013-03-08T05:49:53.363 に答える
0

エントリに余分なスペース(タブなど)が含まれている可能性がありますか?次のことを試すことができます。

SELECT * FROM table_name WHERE email LIKE 'abcd@gmail.com%'

SELECT * FROM table_name WHERE email LIKE '%abcd@gmail.com'

それが事実かどうかを確認する

于 2013-03-08T05:45:55.833 に答える
0

MySQLに保存されているエントリにスペースが含まれている可能性があります。保存されているメールが、空白や予期しない文字が含まれていないかどうかを確認してください。次のことを試して、これを確認することもできます

 SELECT * FROM table_name WHERE email LIKE '%abcd@gmail.com%'
于 2013-03-08T05:42:38.370 に答える
0

追加のスペースはありませんか?LIKE句で試す

SELECT * FROM table_name WHERE email LIKE '%abcd@gmail.com%'
于 2013-03-08T05:42:41.130 に答える
-1

以下のコードを試してください。それがあなたを助けると思います。

SELECT * FROM table_name WHERE `email' = 'abcd@gmail.com';
于 2013-03-08T05:46:17.913 に答える