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尝试清除所有不需要的回车字符:
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上的数据库在导入之前需要转换文件。