Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL删除字段的一部分_Sql - Fatal编程技术网

SQL删除字段的一部分

SQL删除字段的一部分,sql,Sql,我有一个字段,它是由逗号分隔的数字列表,如下所示: 001,002,003... 我想通过删除以下数字之一来更新我的字段: UPDATE table SET column = REPLACE (column, '002', '') 我要这个: 001,,003... 我的问题是逗号,因为我不知道我的号码是在我的开始,在中间还是在结尾。所以我不能这样做: UPDATE table SET column = REPLACE (column, '002,', '') 有什么建议吗?非常感谢!:)

我有一个字段,它是由逗号分隔的数字列表,如下所示:

001,002,003...
我想通过删除以下数字之一来更新我的字段:

UPDATE table SET column = REPLACE (column, '002', '')
我要这个: 001,,003... 我的问题是逗号,因为我不知道我的号码是在我的开始,在中间还是在结尾。所以我不能这样做:

UPDATE table SET column = REPLACE (column, '002,', '')
有什么建议吗?非常感谢!:)

那么:

UPDATE table 
     SET column = SUBSTRING( 
                             REPLACE (',' + column, ',002', '')
                 , 2, 10000)

或者您可以使用STUFF删除第一个字符。

解决方案:停止在一列中使用多个逗号分隔的值!它甚至与数据库设计的第一个标准形式相违背,如果你有“002003”,它将给你“02003”,那是一个错误problem@user3884887:不,那将给你'003',这是正确的。除了你的问题“001002003…”之外,没有空格。如果(错误地)有空格,只需添加一个替换(字段“”,“”)。您应该规范化数据库设计的另一个原因。如果您使用mysql,并且它的子字符串从索引0而不是1开始,则必须使用子字符串(…,1,10000)