mysql选择不适用于varchar字段

时间:2013-11-21 07:37:51

标签: mysql select varchar

我有一个类型为varchar的电子邮件字段的表。

select * 
from `table_name` 
WHERE email='some email'

除了表格中的一封电子邮件外,其他所有电子邮件都运行良好。

3 个答案:

答案 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."'");

删除这些空格,您将不需要使用通配符%

希望这个答案对您有所帮助。