2016-05-06 340 views
2

我如何更新和複製同一個表中的數據,但新數據是JSON格式的數據。JSON格式的MySQL更新字段

我期待更新的領域是:{ 「T」: 「TOKEN1」, 「S」: 「secret1」}

DB user_api表:

(id) (token) (secret) (api) 
--------------------------- 
1 token1 secret1 NULL 

更新查詢:

UPDATE user_api SET api = '{"t":"' +token+ '", "s":"' +secret+ '"}'; 
+1

旁註:你意識到如果沒有WHERE子句,它會更新你的整個表。如果您只有或將始終有一行,則不是問題。 –

+1

MySQL將'+'作爲加法運算符;但具有允許串聯字符串的[CONCAT()](http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat)函數 –

+0

**從數據庫設計階段:**將2列連接到第三列毫無意義。如果您的應用程序的某些部分需要完成此操作,那麼當您呈現或使用此連接時,請在PHP中執行此操作。 – RiggsFolly

回答

3

使用CONCAT

UPDATE user_api SET api = CONCAT('{"t":"', token, '", "s":"', secret, '"}'); 
+0

謝謝,它的工作原理;) – tonoslfx