我在Android中使用以下命令在需要的字段中添加一个值,该字段具有以分号分隔的多个值。
表名为system
,包含3个字段:ID
,Name
和Value
。
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,但它没有做任何事情。
答案 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;
)时,此方法才能正常工作。