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

Android 从具有多个用分号分隔的值的字段中删除/删除值,android,sqlite,Android,Sqlite,我在Android中使用以下命令在需要时在一个字段中添加一个值,该字段有多个用分号分隔的值 表名是系统名,包含3个字段:ID、名称和值 “值”字段包含几个用分号分隔的值: 无线上网;移动数据;蓝牙等 现在,如果我想在其中添加一个值,下面的命令可以很好地工作,在本例中,我添加了数据;其中,名称字段为通知\面板\活动\应用程序\列表: 现在我想从这个多值字段中删除一个值,怎么做?假设我要删除“Bluetooth;”,我该怎么做?我尝试将“删除”改为“选择”,但它没有任何作用。您添加值的命令可以简化,

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

表名是系统名,包含3个字段:ID、名称和值

“值”字段包含几个用分号分隔的值:

无线上网;移动数据;蓝牙等

现在,如果我想在其中添加一个值,下面的命令可以很好地工作,在本例中,我添加了数据;其中,名称字段为通知\面板\活动\应用程序\列表:


现在我想从这个多值字段中删除一个值,怎么做?假设我要删除“Bluetooth;”,我该怎么做?我尝试将“删除”改为“选择”,但它没有任何作用。

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

UPDATE system
SET value = value || 'Data;'
WHERE name = 'notification_panel_active_app_list';
要删除某个值,可以使用:


但是,只有当该值后面实际跟有分号,并且没有其他条目将该值作为后缀(如RedAndBlueTooth;)时,此选项才能正常工作

为什么要使用这种笨拙的格式,而不是正确规范化的表?你能改变数据库的结构吗?这是安卓系统的结构,我不是程序员,我需要的只是能够删除一个条目,添加它,并在一个.sql文件中使用上面提到的指令,然后通过自定义恢复中的脚本使用下面的命令对其进行处理,它工作得非常好。我只需要另一个命令来执行相反的操作来删除Entry/sbin/sh/sbin/mount-a/tmp/sqlite3/data/data/com.android.providers.settings/databases/settings.dbUPDATE system SET value = value || 'Data;' WHERE name = 'notification_panel_active_app_list';
UPDATE system
SET value = replace(value, 'BlueTooth;', '')
WHERE name = 'notification_panel_active_app_list';