查询某字段有特殊字符(PATINDEX函数)
查询某字段有特殊字符(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
小结
无