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

经过一个小但意外的改变后,我让它工作了。

我的旧 PHP 查询是这样的: $res = mysql_query("SELECT * FROM books WHERE email = '$email'");

我的新查询和更改查询如下所示: $res = mysql_query("SELECT * FROM books WHERE email = ' $email'");

出于某种原因,我认为 mysql_real_escape_string() 在开头添加了一个额外的空格,这在 PHPMyAdmin 中是不可见的。

于 2013-03-08T20:16:25.320 回答
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 回答
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

在查询中使用修剪。它不会考虑空格。

于 2013-03-08T05:49:53.363 回答
0

试试这个并检查您是否获得 abcd@gmail.com 的结果。

  SELECT * 
  FROM table_name 
  WHERE email LIKE '%abcd@%'
于 2013-03-08T05:53:24.967 回答
-1

try below code. thinks it will help you.

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