MySQL没有使用=正确匹配电子邮件地址,但与LIKE一起使用

时间:2015-10-26 16:12:47

标签: mysql sql

看起来我的问题是非常常见的问题,但我的问题看起来多种多样。这就是为什么请提前接受我的道歉。

问题: 我试图编写简单的选择查询,例如:

SELECT * from mytable where email_varchar = 'myemail@email.com'

结果= 0

运行此SQL时:

SELECT * from mytable where email_varchar Like '%myemail@email.com%'

它返回结果: MYEMAIL@EMAIL.COM

(LIKE)我无法使用,因为从这个查询我试图在我的数据库中更新我的(退回)电子邮件。记录量约为15k至15.5k,因此有可能电子邮件与“like”条款匹配一个或多个记录。

一些失败的尝试:

  1. 尝试 SELECT * from mytable where email_varchar = upper('myemail@email.com')
  2. =>结果= 0

    1. 尝试SELECT * from mytable where upper(email_varchar) = upper('myemail@email.com')
    2. =>结果= 0

      3.Attempt SELECT * from mytable where STRCMP(email_varchar, 'myemail@email.com') = 0

      =>结果= 0

      4.Attempt SELECT * from mytable where trim(email_varchar) = trim('myemail@email.com')

      =>结果= 0

      1. 尝试SELECT * from mytable where trim(upper(email_varchar)) = trim(upper('myemail@email.com'))
      2. =>结果= 0

1 个答案:

答案 0 :(得分:0)

尝试清除所有不需要的回车符:

UPDATE mytable SET email_varchar = TRIM(TRAILING '\r' FROM email_varchar)

注意:我希望您的列名不是字面意思,因为在我的查询中无休止地重复_varchar会让我感到困惑。