MySQL简单查询返回零行

时间:2016-04-07 08:13:05

标签: php mysql

我有一个包含以下列的表类型:ID,Name,Type。该表充满了大约300行。其中一行:

ID    Name    Type
------------------
1     BMW     S 1000 RR

以下查询返回此行:

SELECT * FROM Types WHERE Name = 'BMW'

但是,以下查询不返回任何内容:

SELECT * FROM Types WHERE Type = 'S 1000 RR'

Type中没有多余的空格,Name和Type的数据类型完全相同(varchar 255,utf8_unicode_ci)。什么可能导致这种情况?

我正在使用MySQL,InnoDB。使用phpMyAdmin我得到完全相同的结果,所以列名中没有拼写错误...

3 个答案:

答案 0 :(得分:3)

我发现了问题:要填写表格,我每行都在阅读一个文本文件。换行符是问题,它在phpMyAdmin的浏览表视图中是不可见的,但我在编辑单行时看到了它。

以下查询解决了我的问题:

UPDATE Types SET Type = REPLACE(REPLACE(Type, '\r', ''), '\n', '');

How to remove new line characters from data rows in mysql?

中找到

感谢大家的评论。

答案 1 :(得分:0)

我确信由于修剪

试试这个

 SELECT * FROM Types WHERE  TRIM(Type) = 'S 1000 RR'

答案 2 :(得分:0)

它不是那样的。您的表名和列名都很好,查询也提供了正确的o / p: 走 CREATE TABLE类型    (    ID int,     名称varchar(3),     输入varchar(9));


插入类型     (ID,名称,类型) VALUES     (1,'宝马',' S 1000 RR')

SELECT * FROM Types WHERE Type = 'S 1000 RR'