我有一个类型为varchar的电子邮件字段的表。
select *
from `table_name`
WHERE email='some email'
除了表格中的一封电子邮件外,其他所有电子邮件都运行良好。
答案 0 :(得分:7)
这适用于您的问题记录
select * from table_name
where email like '%some email%'
然后您的数据中有前导或尾随空格。
要还原您的现有表数据,请按此
update table_name
set email = trim(email)
where email like '%some email%'
答案 1 :(得分:0)
您的电子邮件中可能有空白。 你可以查看电子邮件的长度。
SELECT length(email)
FROM `table_name`
WHERE `email` LIKE '%email%'
使用通配符
select * from table_name
where email like '%some email%'
或访问此处以获取更多组合http://www.w3schools.com/sql/sql_wildcards.asp
答案 2 :(得分:0)
在我的情况下,问题在于在代码中传递变量时,它还在双引号和变量之间留有空格,而在删除该变量时,则不必放置%字符
这是我不正确的代码,请查看变量前后的空格:
$resul = $mysqli->query("SELECT * FROM `people` WHERE `user` = ' ".$user." '");
这是正确的方法:
$resul = $mysqli->query("SELECT * FROM `people` WHERE `user` = '".$user."'");
删除这些空格,您将不需要使用通配符%
希望这个答案对您有所帮助。