查詢某欄位有特殊字元(PATINDEX函式)

随风小屋發表於2024-12-05

查詢某欄位有特殊字元(PATINDEX函式)

建立時間:2023年11月09日

概要

在工作中遇到使用者的usercode欄位出現特殊字元。例如點,空格這些字元在開發中沒有很好去做校驗,需要在後臺資料庫中將這些有問題進行修改。

技術

server的select查詢語句

server的update更新語句

查詢語法

SELECT  *  
FROM '你的表名'  
WHERE PATINDEX('%[^0-9]%', '你的欄位名') > 0;

用於從一個資料庫表中篩選出那些在其指定欄位中包含非數字字元的記錄

1.SELECT *: 這部分表示要選擇所有欄位。* 是一個萬用字元,代表所有欄位。

2.FROM '你的表名': 這裡你需要將 '你的表名' 替換為你實際要查詢的資料庫表的名稱。例如,如果你的表名為 Users,那麼這部分程式碼就應該寫為 FROM Users。

3.WHERE PATINDEX('%[^0-9]%', '你的欄位名') > 0: 這是查詢的關鍵部分,用於設定篩選條件。

	PATINDEX('%[^0-9]%', '你的欄位名'): 這是一個使用 PATINDEX 函式的表示式,用於在字串中查詢與指定模式匹配的第一個子字串的位置。
		'%[^0-9]%': 這是一個模式字串,用於匹配任何非數字字元。[^0-9] 表示匹配任何不在 0-9 範圍內的字元。
		'你的欄位名': 你需要將這部分替換為你想要檢查的欄位的名稱。例如,如果你想檢查 Username 欄位,那麼這部分就應該寫為 Username。
	> 0: 這是一個條件判斷,表示如果 PATINDEX 函式返回的值大於0,即找到了至少一個非數字字元,那麼該記錄就會被選中。

實操

SELECT  *  
FROM users  
WHERE PATINDEX('%[^0-9]%', userCode) > 0;

結果

後續可按照:

UPDATE 表名  
SET 列名1 = 新值1, 列名2 = 新值2, ...  
WHERE 條件;


---------------------
UPDATE users SET userCode = '33206011746' WHERE id = '65749' -- 332.06011746
UPDATE users SET userCode = '20212976' WHERE id = '115275' -- no.20212976

小結

相關文章