2017-08-04 70 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