0
是否有可能一個JSON列表字段中MariaDB的取樣類似的存儲低於使用動態列的MariaDB的SQL INSERT語句:如何JSON數據與錶轉換成使用動態列
{
"myfield": "value1",
"myList": ["item1" , "item2", "item3"]
}
是否有可能一個JSON列表字段中MariaDB的取樣類似的存儲低於使用動態列的MariaDB的SQL INSERT語句:如何JSON數據與錶轉換成使用動態列
{
"myfield": "value1",
"myList": ["item1" , "item2", "item3"]
}
很遺憾MariaDB動態列本身不支持JSON數組列表,儘管這是一個解決方案,並且與INTEGERS更好地協作,但您可以嘗試使用字符串。
ALTER TABLE `your_table` ADD COLUMN `dynamic_column` BLOB NULL DEFAULT
NULL ;
您將數組列表作爲字符串存儲在動態列
INSERT INTO
your_table (dynamic_column)
VALUES
(COLUMN_CREATE('myfield','value1'
,'myList','["item1" , "item2", "item3"]')
);
OR
UPDATE
your_table
SET
dynamic_column = COLUMN_CREATE('myfield','value1'
,'myList','["item1" , "item2", "item3"]'
)
WHERE
id = your_id ;
到目前爲止好現在有棘手的部分。如何在不破壞格式的情況下返回。使用替換功能:
SELECT REPLACE(REPLACE(COLUMN_JSON(dynamic_column),'"[','['),']"',']') FROM your_table ;
您還可以在不創建任何表的情況下快速測試輸出。
SET @tmp= COLUMN_CREATE('myfield','value1','myList','[ "item1" , "item2" , "item3" ]') ;
SELECT REPLACE(REPLACE(COLUMN_JSON(@tmp),'"[','['),']"',']') json_string;
如果輸出中斷與JSON格式 '\':
+----------------------------------------------------------------------+
| json_string |
+----------------------------------------------------------------------+
| {"myList":[ \"item1\" , \"item2\" , \"item3\" ],"myfield":"value1"} |
+----------------------------------------------------------------------+
然後嘗試像
SELECT REPLACE(REPLACE(REPLACE(COLUMN_JSON(@tmp),'"[','['),']"',']'),'\\','') json_string;
+----------------------------------------------------------------+
| json_string |
+----------------------------------------------------------------+
| {"myList":[ "item1" , "item2" , "item3" ],"myfield":"value1"} |
+----------------------------------------------------------------+
搏一搏!
** 不要忘記驗證像或的TextWrangler記事本++
** 任何網上驗證或文本編輯器的JSON字符串輸出當心有時動態列可以是動態的疼痛
乾杯
任何事情都可能發生,但沒有任何理由爲什麼您想要這樣做 – Strawberry
JSON輸出來自第三方系統,我希望將其存儲在數據庫中以便稍後處理。 –
我想你應該改變你的問題:如何將給定的JSON轉換爲使用動態列的MariaDB SQL插入語句,如此處所述。 https://mariadb.com/kb/en/mariadb/dynamic-columns/您應該指定您計劃使用哪種編程語言。 – Risadinha