2017-06-04 68 views
0

我無法編寫一個查詢,該列將名爲improvement的列的值設置爲存儲在名稱存儲在變量latestprev_list將負值插入一個基於減去其他值的sqlite列中

我當前查詢(與Python字符串連接)是:

'UPDATE players SET improvement=(' + latest + '-' + prev_list + ') WHERE ' + latest + ' IS NOT NULL AND ' + prev_list + 'IS NOT NULL AND ' + prev_list + ' != 0 '

現在,如果我改變了查詢,以便添加值(+),而不是減去(-)括號內該查詢按預期工作,但在試圖減去它們時,improvement值都不是列缺省值的變化。

我在做什麼錯?

編輯:按照現在刪除的評論 - 我試圖在變量名稱周圍添加括號,沒有任何效果。

+1

你錯過了引號之前'IS NOT NULL' –

+0

@MichaelO。你是對的,但這是一個錯誤的問題,而不是原來的代碼:( – DTR

+1

打印'最新'和'prev_list',可能其中之一或兩者都是'None'? –

回答

1

我相信你應該改變你的查詢關鍵詞,比如下面按我的理解

UPDATE players 
SET improvement = latest - prev_list 
WHERE latest IS NOT NULL 
AND (prev_list IS NOT NULL AND prev_list <> 0) 
+0

感謝您的回答,但是這並沒有解決問題 - 在此查詢運行後,「改進」列值都保持默認值 – DTR

+1

@DTR ,在這種情況下,where子句不匹配任何記錄,發佈一些示例數據 – Rahul

+0

感謝您的幫助 - 事實證明,我將兩個變量都設置爲相同的列名,這意味着ab始終= 0。 – DTR