Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL无法使用=正确匹配电子邮件地址,但可以使用LIKE_Mysql_Sql - Fatal编程技术网

MySQL无法使用=正确匹配电子邮件地址,但可以使用LIKE

MySQL无法使用=正确匹配电子邮件地址,但可以使用LIKE,mysql,sql,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 (比如)我无法使用

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

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

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

运行此SQL时:

SELECT * from mytable where email_varchar Like '%myemail@email.com%'
它返回结果: MYEMAIL@EMAIL.COM

(比如)我无法使用,因为从这个查询中,我试图更新我数据库中的(回复的)电子邮件。记录量约为15k到15.5k,因此电子邮件可能会将一个或多个记录与“like”子句匹配

一些失败的尝试:

  • 企图
    从mytable中选择*,其中email\u varchar=upper('myemail@email.com)
  • =>结果=0

  • 尝试从mytable中选择*,其中upper(email_varchar)=upper('myemail@email.com)
  • =>结果=0

    3.尝试从mytable中选择*,其中STRCMP(email_varchar,'myemail@email.com')=0

    =>结果=0

    4.尝试从mytable中选择*,其中trim(email_varchar)=trim('myemail@email.com)

    =>结果=0

  • 尝试从mytable中选择*,其中trim(upper(email_varchar))=trim(upper('myemail@email.com)

  • =>结果=0

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

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

    注意:我希望你的列名不是字面上的那样,因为在我的查询中不断重复
    \u varchar
    会让我很恼火。

    什么是
    从我的表中选择十六进制(email\u varchar),email\u varchar像'%myemail@email.com%“
    product?我想你的房间里还有其他垃圾field@tadman谢谢你的快速回复。我检查了一下那里什么都没有。。。。还有别的办法吗。我可以更仔细地检查我在做普通选择时看不到任何东西..你试过
    LIKE'myemail@email.com“
    没有百分号。刚刚尝试了结果0…那里一定有东西,即使它是不可见的。这就是为什么我特别要求输出
    HEX()
    。您的示例中的结果应该是
    6D79656D61696C40656D61696C2E636F6D
    。不,我在这里写这篇文章不仅仅是为了显示它的varchar:)@tadman在那里,没有更新我可以在where子句中使用的数据库。您真的想更新您的数据库。拥有肮脏的数据,然后再处理这些数据只会使问题僵化<像这样的代码查询也是出了名的昂贵,它需要扫描整个表来生成匹配项。一个索引正确的表可以毫不费力地做到这一点。你知道吗????你太棒了。。。。。。它正在工作>>>>>>我刚刚运行了给定的更新查询…最后一个问题是,在mySQL中导入CSV文件时,我是否可以这样做??我在Linux上的数据库在导入之前需要转换文件。