SQL 通配符及替换
通配符 描述
% 匹配0个或多个字符
- 匹配单个字符
[] 匹配指定集合的任一单个字符
[^] 匹配不在指定集合内的任一单个字符
有下划线的情况 需要加 escape ‘\‘; 可以把\换成其他字符的,只是在关键字后边 就变成了 ESCAPE + "ni你的字符"
like ‘abcd$_% escape ‘$‘
SELECT field1 FROM tablename1 WHERE field2 like ‘abcd\_%‘ escape ‘\‘;
SELECT [ID]
,[BoardName]
,[Layout]
,[BContent]
FROM [KAGA_Label_SEC].[dbo].[MainBoard] where [BoardName] like ‘SA\_\_%‘ escape ‘\‘;
运行结果如下:
ID BoardName Layout BContent
1046 SA__904701形式B 015701-K●●●-50904801■■■■-------
1047 SA__904501形式B 015601-K●●●-50904601■■■■-------
将 SA__ 的主机板内的字符更改为 替换为 CA50 的字符
update [KAGA_Label_SEC].[dbo].[MainBoard] set [BoardName] = replace ( [BoardName], ‘SA__‘,‘CA50‘);
SELECT * FROM [KAGA_Label_SEC].[dbo].[MainBoard] where [BoardName] like ‘CA50%‘
注意: 直接做这个更新操作的时候备份一下数据库或者进行一下事务或者什么的
推荐使用以下方式更新-----------------------先查询----然后限制条件进行更新--------------------------------------
备用安全的方式,查询的结果ID保存到另一个表格中.以便更新错误时可恢复.
/****** Script for SelectTopNRows command from SSMS ******/
SELECT [ID]
,[BoardName]
,[Layout]
,[BContent]
FROM [KAGA_Label_SEC].[dbo].[MainBoard] where [BoardName] like ‘SA/_%‘ escape ‘/‘
update [KAGA_Label_SEC].[dbo].[MainBoard]set [BoardName] = replace ( [BoardName], ‘SA_‘,‘CA5‘)where [BoardName] like ‘SA/_%‘ escape ‘/‘ ;
--------------------------------------------------------------------------------------------------------------