Sql - 删除包含特殊字符(不是字母数字)的列的所有行

时间:2016-11-06 10:34:56

标签: mysql sql

我想要删除table的所有行 其中column包含特殊字符,例如@#$_&-+()/*'';!?~|•√π÷¶∆£¢¥^°={}\%©™℅[]
基本上所有元素都不是字母或数字。

1 个答案:

答案 0 :(得分:2)

Codecaster为您提供了解决方案的途径。分解得到它。

你有这个:

SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$'

返回仅包含字母数字字符

的所有行

如果要删除所有其他行,可以执行以下操作:

DELETE FROM table 
WHERE ID NOT IN
(
    SELECT ID FROM table WHERE column REGEXP '^[A-Za-z0-9]+$'
)

或否定正则表达式:

DELETE FROM table WHERE column NOT REGEXP '^[A-Za-z0-9]+$'