2016-09-14 54 views
0

我有问题与我的学习项目在MySQL中创建数据库。 我已经使用LOAD将数据从CSV文件导入到我创建的表中。现在当我执行select * from mytable一切都显示完美,但是当我执行select * from bi_jogging.routes as r where r.Creator_Email="[email protected]" 我什么也得不到。MySQL返回没有结果从select * where varchar =“”查询

电子邮件是在那里,我试过不同的语法选项,但它似乎是别的东西,我怀疑与varchar格式的东西,我真的没有什么在脑海中。

对于其他表格,它的工作正常,其他人没有。

+0

你什么也没得到或错误? – bhttoan

+0

什么也没有,完全没有错误。只是空的结果。它显然也会影响连接查询,当条件加入时(r.mail = p.mail)也没有结果 – Johnny

+0

用于测试在'where子句中尝试'LIKE'运算符,'r.Creator_Email LIKE'%[email protected]%'; '。 –

回答

1

您可以尝试使用查询:

select * from bi_jogging.routes as r where r.Creator_Email like "%[email protected]%" 

如果像运营商展示了结果,那么有可能是空格的电子邮件,请仔细检查..

对于连接试试这个:

select * from bi_jogging.routes as r join bi_jogging.buddies as b 
on b.Email like '%r.Creator_Email%' 
+0

LIKE运算符工作正常。但看看从bi_jogging.routes选择*作为r加入bi_jogging.buddies作为b上r.Creator_Email = b.Email,那些匹配电子邮件,但没有结果。 – Johnny

+0

在加入你也可以使用像运营商.. –

+0

首先,感谢您的回复,我现在明白问题在于来自CSV的原始数据,但我必须坚持使用带有“=”的常规联接,因为我随后在Talend软件上执行联接(用于ETL过程) 。无论如何要修复数据?我找不到任何空间或任何 – Johnny

0

我认为它应该工作。再次检查相同的代码。

SELECT * FROM bi_jogging.routes为r其中r.Creator_Email='[email protected]

0

我发现空格几封邮件后,MySQL表,所以我想这是它。在这一个8小时烧了,谢谢大家。我不能看它发现在邮件的结尾空格,我只好打回退地看到,只有经过两次命中的最后一个字符将被删除

帮我:UPDATE bi_jogging.results set Mail_Found = TRIM(Replace(Replace(Replace(Mail_Found,'\t',''),'\n',''),'\r',''));

0

如果[select * from mytable ]这是有效的,然后尝试从结果中复制电子邮件并将其粘贴到where子句中。

引号之间可能有冲突。

您的表条目包含引号? 检查正确。我认为你在表格中有引号,所以当你尝试这样的时候,所以当你尝试这个时,你会得到结果。 表内[email protected]"[email protected]"是完全不同的。