我有一个数据库,我有一个电子邮件字段,等等。
当我执行SELECT语句时:
SELECT * FROM table_name WHERE email = 'abcd@gmail.com';
...它返回一个空集,即使我可以看到表中的条目。
使用时,同样的说法有效:
SELECT * FROM table_name WHERE fname = 'abcd';
可能出现什么问题?
答案 0 :(得分:2)
在您的查询中使用trim
SELECT * FROM table_name WHERE TRIM(`email`) = 'abcd@gmail.com';
答案 1 :(得分:0)
可能在条目中存在一些存储在MySQL中的空格,检查存储的电子邮件是否正好没有任何空格或意外字符。您也可以尝试以下方法来确认此
SELECT * FROM table_name WHERE email LIKE '%abcd@gmail.com%'
答案 2 :(得分:0)
您确定没有额外的空间吗?试试LIKE
子句
SELECT * FROM table_name WHERE email LIKE '%abcd@gmail.com%'
答案 3 :(得分:0)
条目是否包含额外的空格(标签等)? 您可以尝试:
SELECT * FROM table_name WHERE email LIKE 'abcd@gmail.com%'
和
SELECT * FROM table_name WHERE email LIKE '%abcd@gmail.com'
看看是否是这种情况
答案 4 :(得分:0)
在查询中使用trim。它不会考虑空格。
答案 5 :(得分:0)
试试这个并检查你是否收到abcd@gmail.com的结果。
SELECT *
FROM table_name
WHERE email LIKE '%abcd@%'
答案 6 :(得分: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中是不可见的。
答案 7 :(得分:-1)
尝试以下代码。认为它会对你有所帮助。
SELECT * FROM table_name WHERE `email' = 'abcd@gmail.com';