我意识到在我的SQL数据库中有一些记录有一个额外的空白,但我不确定哪些人有这额外的空白。我试图找出哪些记录是相同的,但是我使用的语句不区分记录,如果它们最后有额外的空间。如何检查SQL记录是否相同,包括空格?
目前我使用下面的SQL语句来检查记录是等价的:
SELECT * FROM TABLE WHERE NAME='TEST ';
这将返回具有名称“TEST”的记录。如何查找哪些记录具有名称'TEST'?
我意识到在我的SQL数据库中有一些记录有一个额外的空白,但我不确定哪些人有这额外的空白。我试图找出哪些记录是相同的,但是我使用的语句不区分记录,如果它们最后有额外的空间。如何检查SQL记录是否相同,包括空格?
目前我使用下面的SQL语句来检查记录是等价的:
SELECT * FROM TABLE WHERE NAME='TEST ';
这将返回具有名称“TEST”的记录。如何查找哪些记录具有名称'TEST'?
如果你有一张表有多行相似的数据,但随机空白和其他垃圾东西放在它周围,并且你想查看每个特定的奇数数据有多少,你可以做一个与计数分组。
SELECT Name
,Last Name
,Count(*)
FROM table
GROUP BY NAME
,LAST NAME
这应该显示所有结果以及它旁边的每个结果。
IE:JOHN SMITH 2 JACK SMITH 1
谢谢,这是完美的。 – singhcpt
由于数据库处理空间的方式,这可能会非常棘手。如果你不想应付不同的情况(是否不LIKE
行为相同的方式可以regexp
处理这个问题),那么你可以做:
WHERE CONCAT(NAME, 'x') = 'TEST x';
请注意,这可能会影响性能,如果查询能够使用NAME
上的索引。
你可以试试这个
SELECT * FROM TABLE WHERE TRIM(NAME)='TEST';
如何找到这些记录具有名称 'TEST'?
一种方法是:
select * from mytable
WHERE NAME='TEST ' and length(NAME) = length('TEST ');
谢谢!没有这样想过,这很聪明。 – singhcpt
是什么名称的数据类型?炭? (这将填充瓦特/空格?) – xQbert
数据类型是varchar – singhcpt