我意識到在我的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