SQL:搜索一列中给出的不允许的字符并替换

时间:2018-09-06 15:11:27

标签: mysql sql database replace pattern-matching

允许的字符为0-9 A-Z a-z和.-_

我想在MySQL数据库的一栏中搜索是否允许其他一些字符,并将其替换为“-”。

SQL是否可能?

类似的东西;)

  

@ARRAY =(0,1,2,3,4,5,6,7,8,9,。,-,_,A-Z,a-z);

     

更新表SET columnName = replace(columnName,'CHAR DOES NOT MATCH @ARRAY','-');

更新:

ID  NUMBER

1   1620WGC-2018_3.2
2   70-30-2015
3   PTMMC4450-2017+
4   PE-1013-64/2018
5   1580-2018_3%2
6   PE-1036-68A-2018
7   D10+

在编号列中,应将ID的3、4、5和7改正为:

ID  NUMBER

1   1620WGC-2018_3.2
2   70-30-2015
3   PTMMC4450-2017-
4   PE-1013-64-2018
5   1580-2018_3-2
6   PE-1036-68A-2018
7   D10-

例如,因为+,/和%不在带有允许字符的Array中。

1 个答案:

答案 0 :(得分:0)

您可能需要这个。

SELECT * FROM table WHERE replace(replace(columnName, '\'', ''), '-', '') = 'findMyText'