Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 更改不同行(如果存在)或插入或删除_Sqlite - Fatal编程技术网

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新建,然后插入