如何从表中删除特定值

时间:2014-01-27 08:37:12

标签: mysql sql-delete

我有以下表结构:

表“样本”

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”的所有列。我怎么能这样做?

2 个答案:

答案 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;