[英]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.