我有以下表结构:
表“样本”
objectID | objectValues
1 | 5,6,7
2 | 6,7,5,8
3 | 5
4 | 7,8,9,5,6
5 | 10,11
6 | 5
因此,我想删除“objectValues”中的所有“,5”或“5”值,并删除其“objectValues”值仅为“5”的所有列。我怎么能这样做?
答案 0 :(得分:2)
您可以尝试使用四个查询来进行此更改。
当对象值为5时,首先查询删除所有行
DELETE FROM sample WHERE objectValues = 5;
第二个用于更新行,当值是在除第一个和最后一个之外的所有位置
UPDATE sample
SET objectValues = REPLACE(objectValues , ',5,', ',');
当值5位于第一位时第三
UPDATE sample
SET objectValues = LEFT(objectValues, LENGTH(objectValues)-2)
WHERE objectValues LIKE '5,%';
和值5在最后一个位置时的最后一次查询
UPDATE sample
SET objectValues = RIGHT(objectValues, LENGTH(objectValues)-2)
WHERE objectValues LIKE '%,5';
答案 1 :(得分:0)
试试这个
delete from table where find_in_set(5,objectValues)>0;