我的資料庫中有一些垃圾。我想知道我有多少。正確的資料應該是這樣的 foo-bar。不幸的是,我也有 foo-bar。
如果我運行這兩個查詢,我會得到相同的資料。
select * from data
where field like '%-%';
select * from data
where field like '%-%';
兩個查詢的結果
foo-bar
foo-bar
如何只查詢包含-而不包含-的資料?azure web 客戶端和 azure data studio 似乎都以某種方式轉換了這個字符,就好像只有一個字符一樣。這是兩個不同的 Unicode 字符https://www.codetable.net/decimal/45與https://www.codetable.net/decimal/65293
uj5u.com熱心網友回復:
你有2個問題。一是Unicode文字字串需要一個N前綴來表示Unicode。另一個是二進制排序規則轉換需要在代碼點而不是字符中進行比較:
SELECT * FROM data
WHERE field LIKE N'%-%' COLLATE Latin1_General_BIN;
SELECT * FROM data
WHERE field LIKE N'%-%' COLLATE Latin1_General_BIN;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/432418.html
