2015-01-21 98 views
3

我想添加一些東西到列中的每一行,但我有一些困難。行中已經有一些數據,我不想失去這些數據,只需添加這個新數據即可。Sqlite更新查詢錯誤

Table name is GroupList 
Column name is Commands 

在命令行中,數據由逗號分隔。

這裏是我的爛攤子:

UPDATE GroupList SET Commands = ',stats.highscores', WHERE Commands != ',stats.highscores' 

的,在stats.highscores之前是必須的。我不知道爲什麼它不起作用。 我試圖在谷歌查找錯誤代碼,但我仍然得到相同的錯誤。

Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) 
[mozIStorageConnection.createStatement] 

我真的會用一些幫助來解決這個問題。對不起,如果我寫了一些愚蠢的東西,我是新的sqlite。

編輯:我使用的SQLite的經理Firefox的插件

+0

你在使用更新此值執行SQLite?你應該得到一個更好的錯誤信息。您發佈的SQL無效。 – 2015-01-21 04:14:05

+1

查看www.sqliteexpert.com以獲取幫助處理SQL查詢的替代工具。 – 2015-01-21 04:17:31

回答

1

你有後一個逗號SET聲明使得SQL無效。

您擁有的聲明將更新所有現有行的Commands列,其中Commands列的值不具有值,stats.highscores

要創建一個新的行,你需要使用INSERT

INSERT INTO GroupList (Commands) VALUES (',stats.highscores'); 

編輯

要在沒有電流值使用

UPDATE GroupList 
    SET Commands = ',stats.highscores' 
WHERE 
    Commands IS NULL 
    OR Commands = ''; 
+0

謝謝你的回答。工作,但刪除命令列中的現有數據,我需要保持這一點。 – Matthew 2015-01-21 04:17:22

+0

您的Where子句需要排除任何現有值,但需要檢查要插入的值。列是NULL還是空字符串? – 2015-01-21 04:19:49

+0

默認值爲空 – Matthew 2015-01-21 04:21:28

1

逗號之前WHERE不屬於。

SET Commands = ',stats.highscores', WHERE 

也許使用NOT LIKE而不是!=

UPDATE組列表SET命令=',stats.highscores',其中的命令也不喜歡你,stats.highscores'

+0

謝謝你的回答,但是我得到同樣的錯誤。:\ – Matthew 2015-01-21 04:17:43

+0

已經刪除了逗號嗎? – Misunderstood 2015-01-21 04:29:01

+0

是的,嘗試過。看來我使用的工具是一團糟。通過SQlite專家個人,我能夠解決問題併成功運行查詢。在我得到15個repu後,我會回來並且提出你的答案。謝謝:) – Matthew 2015-01-21 04:38:50