2016-05-06 15 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

sidenote:WHERE句がないと、テーブル全体が更新されます。あなたは1つの行しか持っていない、または常に1つの行がある場合は問題ありません。 –

+1

MySQLは加算演算子として '+'を扱います。文字列を連結できる[CONCAT()](http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat)関数があります。 –

+0

**データベース設計のプレゼンテーションから** 2列を3列目に連結するのはあまり意味がありません。あなたのアプリケーションのいくつかの部分がこれを行う必要がある場合は、あなたがこの連結を提示したり使用したりするときにPHPで行います。 – RiggsFolly

答えて

3

使用CONCAT

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

ありがとう、gret;) – tonoslfx