簡體   English   中英

Sqlite插入或替換不會更新一列

[英]Sqlite Insert or Replace don't update one column

我正在使用插入或更新數據。 我有一個表sub_sub_categories,有一列is_favorite默認值為0,我將其設置為1當用戶添加到收藏夾時。 在每次應用啟動時,我都會插入或替換來自網絡的所有數據 當我這樣做時,它也將is_favorite設置為0.雖然我沒有設置它。 如何阻止它更新is_favorite列。 這是我的代碼。

for (int i=0; i < arraySubSubCategories.count; i++) {
    id dict = [arraySubSubCategories objectAtIndex:i];

    NSString *query = [NSString stringWithFormat:@"INSERT OR REPLACE into sub_sub_categories (id, name, sub_category_id, problem_name, problem_description, why, why_link, solution, solution_link, sort_order, is_deleted) VALUES (%@, '%@', %@, '%@', '%@', '%@', '%@', '%@', '%@', %@, %@)",
                       [dict objectForKey:@"id"],
                       [MyCommonFunctions addSlashes:[dict objectForKey:@"name"]],
                       [dict objectForKey:@"sub_category_id"],
                       [MyCommonFunctions addSlashes:[dict objectForKey:@"problem_name"]],
                       [MyCommonFunctions addSlashes:[dict objectForKey:@"problem_description"]],
                       [MyCommonFunctions addSlashes:[dict objectForKey:@"why"]],
                       [MyCommonFunctions addSlashes:[dict objectForKey:@"why_link"]],
                       [MyCommonFunctions addSlashes:[dict objectForKey:@"solution"]],
                       [MyCommonFunctions addSlashes:[dict objectForKey:@"solution_link"]],
                       [dict objectForKey:@"sort_order"],
                       [dict objectForKey:@"is_deleted"]];

    [MyCommonFunctions InsUpdateDelData:query];
}

編輯查詢是:

INSERT OR REPLACE into sub_sub_categories (id, name, sub_category_id, problem_name, problem_description, why, why_link, solution, solution_link, sort_order, is_deleted) VALUES (93, 'some data', 6, '', 'some data', 'some data', '', 'some data', 'some data', 0, 0)

INSERT OR REPLACE不會在db中保留先前的值,它會使用給定的值或默認值覆蓋它。

您必須首先查詢數據庫以獲取現有字段(如果存在記錄),並在查詢中放置您不想替換的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM