Mysql脚本从12月16日到31日删除ascii代码

时间:2014-05-20 19:22:31

标签: mysql sql

有人能告诉我这个剧本出错的地方吗?我实际上是尝试使用脚本删除16到31之间的所有ASCII代码。我已经开发了一个用于选择它的脚本。

SELECT * from `TABLE_NAME` WHERE COLUMN_NAME like %(ascii code here)%

但我如何删除它。这段代码对吗?

DELETE from `TABLE_NAME` WHERE .....(dont know what to say here)

2 个答案:

答案 0 :(得分:1)

DELETE命令从表中删除整行。我想你要删除字符串DESCRIPTION中的特殊字符而不是一行。然后你应该使用UPDATE语句和REPLACE()函数。

例如,如果要删除ASCII代码16,请使用以下语句:

UPDATE Animals 
   SET Description = REPLACE(Description,CHAR(16),'')
   WHERE Description LIKE CONCAT('%',CHAR(16),'%');

SQLFiddle demo

答案 1 :(得分:1)

我得到了这个脚本,并将其用作上述问题的解决方案。

要搜索我使用下面的脚本。

SELECT column_name
FROM table_name
WHERE column_name REGEXP '[[.DLE.]-[.US.]]'

这是为了更新。慢但确定,我想确保删除所有非键盘字符。

UPDATE table_name
SET column_name(REPLACE(column_name,Char(16), '')

以上脚本仅适用于DLE,因此您必须将16一直更改为31以更新和替换从DEC 16到DEC 31的所有非键盘字符。