从具有以分号分隔的多个值的字段中删除/删除值

时间:2014-05-17 21:05:33

标签: android sqlite

我在Android中使用以下命令在需要的字段中添加一个值,该字段具有以分号分隔的多个值。

表名为system,包含3个字段:IDNameValue

value字段包含多个用分号分隔的值:

Wifi;Mobile Data;BlueTooth等。

现在,如果我想在其中添加一个值,则以下命令可以正常工作,在这种情况下,我会在Data;字段为Name的位置添加notification_panel_active_app_list

UPDATE system
SET value = (SELECT value || 'Data;'
             FROM system
             WHERE name = 'notification_panel_active_app_list')
WHERE name = 'notification_panel_active_app_list';

现在我想从这个多值字段中删除一个值,怎么做?我们说我想删除蓝牙;',我应该怎么做?我尝试使用DELETE而不是SELECT,但它没有做任何事情。

1 个答案:

答案 0 :(得分:0)

您可以简化添加值的命令,因为value列中的旧值可以直接使用:

UPDATE system
SET value = value || 'Data;'
WHERE name = 'notification_panel_active_app_list';

要删除值,您可以使用replace function

UPDATE system
SET value = replace(value, 'BlueTooth;', '')
WHERE name = 'notification_panel_active_app_list';

但是,只有当该值实际上后跟分号,并且没有其他条目具有此值作为后缀(例如RedAndBlueTooth;)时,此方法才能正常工作。