在MySQL中将数据插入JSON列

时间:2019-02-22 18:55:21

标签: mysql

我正在尝试在表之间传输数据。

  • 源表:2列(title_english,title_german),CHAR
  • 目标表:1列(标题),JSON

并尝试了此操作:

/etc/httpd/conf/extra/http-vhosts.conf

这给了我一个错误:

INSERT INTO 
movies (titles) 
SELECT 
'{ "en": title_english, "de": title_german}'
FROM movies_old;

看起来我可以在SELECT子句中使用concat:

Error Code: 3140. Invalid JSON text: "Invalid value." 

但是想知道是否会有更自然的方法。

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找这个

SELECT JSON_OBJECT('en',`title_english`, 'de', `title_german`) FROM movies_old;

答案 1 :(得分:0)

使用JSON_OBJECThttps://dev.mysql.com/doc/refman/5.7/en/json-creation-functions.html

例如:

SELECT JSON_OBJECT('id', 87, 'name', 'carrot');

会产生:

{"id": 87, "name": "carrot"}

因此您的查询如下:

INSERT INTO 
movies (titles) 
SELECT JSON_OBJECT('en', title_english, 'de', title_german)
FROM movies_old;