有人能告诉我这个剧本出错的地方吗?我实际上是尝试使用脚本删除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)
答案 0 :(得分:1)
DELETE命令从表中删除整行。我想你要删除字符串DESCRIPTION
中的特殊字符而不是一行。然后你应该使用UPDATE语句和REPLACE()函数。
例如,如果要删除ASCII代码16
,请使用以下语句:
UPDATE Animals
SET Description = REPLACE(Description,CHAR(16),'')
WHERE Description LIKE CONCAT('%',CHAR(16),'%');
答案 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的所有非键盘字符。