Sqlite 更改不同行(如果存在)或插入或删除
我有一张桌子:Sqlite 更改不同行(如果存在)或插入或删除,sqlite,Sqlite,我有一张桌子: CREATE TABLE tbl_teams ( id integer primary key, team_id varchar(80), team_title varchar(80), team_city varchar(80) ) 服务器提供一些活动团队列表,例如JSON格式: { "teams":[ { "team_id":678, "title
CREATE TABLE tbl_teams (
id integer primary key,
team_id varchar(80),
team_title varchar(80),
team_city varchar(80)
)
服务器提供一些活动团队列表,例如JSON格式:
{
"teams":[
{
"team_id":678,
"title":"Red Heads",
"town":"Moscow"
},
{
"team_id":90,
"title":"Blue Hands",
"town":"Baghdad"
},
{
"team_id":128,
"title":"White Tails",
"town":"Paris"
}
]}
如何将表tbl_teams设置为实际状态?我的意思是,标题和城镇可以更改,只有团队id不变。团队可以更改,或者在表中不存在团队id时插入,或者在服务器响应中不存在时删除
希望得到帮助。另一个论坛的答案:
UPDATE tbl_teams
SET team_title=(SELECT title FROM NewTable WHERE
NewTable.team_id=tbl_teams.team_id),
team_city=(SELECT town FROM NewTable WHERE
NewTable.team_id=tbl_teams.team_id)
WHERE EXISTS(SELECT *
FROM NewTable
WHERE NewTable.team_id=tbl_teams.team_id and
(NewTable.title<>tbl_teams.team_title or
NewTable.town<>tbl_teams.team_city))
INSERT INTO tbl_teams (team_id,team_title,team_city)
SELECT team_id,title,town
FROM NewTable
WHERE NOT EXISTS(SELECT * FROM tbl_teams WHERE
NewTable.team_id=tbl_teams.team_id)
检查这个问题:不,我不会替换所有行。在这种情况下,更方便的方法是删除所有表格并再次填充,我只想替换不同的表格,就像team_id_table==team_id_new and title_table!=标题\u新建或城镇\u表格!=城镇\u新建,如果团队\u id\u表,则更换其他!=团队\u id\u新建,然后插入