更新数据库字段里的某个值!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:25:40
有一表test
里有:
ID | BookName
1 | 1001,1002,1003,1004,1005,1006
2 | 1002,1005,1006
3 | 1001,1004,1003
我想删除BookName里含有 1001,1002的值,也就是只要表里边有1001和1002我都清除之,怎么写SQL语句呢?^_^
-----------------------------------------------------
我只想把1001和1002去掉哦,不想把整条记录都删,Update能写吗?我不单是这几条,有上百条呢

ORACLE中可以通过以下语句来完成:

select replace(replace(bookname,'1001',''),'1002','') from test ;

使用replace()函数
REPLACE('string','s1','s2')
string 希望被替换的字符或变量
s1 被替换的字符串
s2 要替换的字符串
思路:用空串替换了'1001','1002'

想要真删除的话可以直接用UPDATE来更改:
update test set bookname=replace(replace(bookname,'1001',''),'1002','');

删除有1001或者 1002的值的行
delete from test
where bookename like '%1001%' or bokname like '%1002%'
删除同时有1001和 1002的值的行
delete from test
where bookname like'%1001%1002%' or bookname like'%1002%1001%'

select * from test where bookname like '%1001%' or bookname like '%1002%'

UPDATE test
set BookName=1003,1004,1005,1006
WHERE ID=1