2017-08-04 69 views
1

我意识到在我的SQL数据库中有一些记录有一个额外的空白,但我不确定哪些人有这额外的空白。我试图找出哪些记录是相同的,但是我使用的语句不区分记录,如果它们最后有额外的空间。如何检查SQL记录是否相同,包括空格?

目前我使用下面的SQL语句来检查记录是等价的:

SELECT * FROM TABLE WHERE NAME='TEST '; 

这将返回具有名称“TEST”的记录。如何查找哪些记录具有名称'TEST'?

+0

是什么名称的数据类型?炭? (这将填充瓦特/空格?) – xQbert

+0

数据类型是varchar – singhcpt

回答

0

如果你有一张表有多行相似的数据,但随机空白和其他垃圾东西放在它周围,并且你想查看每个特定的奇数数据有多少,你可以做一个与计数分组。

SELECT Name 
     ,Last Name 
     ,Count(*) 
FROM table 
GROUP BY NAME 
     ,LAST NAME 

这应该显示所有结果以及它旁边的每个结果。

IE:JOHN SMITH 2 JACK SMITH 1

+0

谢谢,这是完美的。 – singhcpt

0

由于数据库处理空间的方式,这可能会非常棘手。如果你不想应付不同的情况(是否不LIKE行为相同的方式可以regexp处理这个问题),那么你可以做:

WHERE CONCAT(NAME, 'x') = 'TEST x'; 

请注意,这可能会影响性能,如果查询能够使用NAME上的索引。

0

你可以试试这个

 SELECT * FROM TABLE WHERE TRIM(NAME)='TEST'; 
0

如何找到这些记录具有名称 'TEST'?

一种方法是:

select * from mytable 
WHERE NAME='TEST ' and length(NAME) = length('TEST '); 
+0

谢谢!没有这样想过,这很聪明。 – singhcpt