MySQL提供了一些方法來對JSON類型的數據進行操作,包括對JSON數組進行按照列的顯示。
CREATE TABLE example ( id int(11) NOT NULL AUTO_INCREMENT, jsonData json NOT NULL, PRIMARY KEY (id) ); INSERT INTO example (jsonData) VALUES ('{"col1": "val11", "col2": "val12", "col3": "val13"}'), ('{"col1": "val21", "col2": "val22", "col3": "val23"}');
對于上述的數據表,我們可以使用`JSON_EXTRACT`函數來獲取需要的數據。
SELECT JSON_EXTRACT(jsonData, '$.col1') AS col1, JSON_EXTRACT(jsonData, '$.col2') AS col2, JSON_EXTRACT(jsonData, '$.col3') AS col3 FROM example;
這樣就可以獲得類似下面的結果。
col1 | col2 | col3 | |-------|-------|-------| | val11 | val12 | val13 | | val21 | val22 | val23
除了使用`JSON_EXTRACT`函數,我們還可以通過其他函數來獲取JSON數組中的數據,例如`JSON_TABLE`函數。
SELECT j.col1, j.col2, j.col3 FROM example e, JSON_TABLE(e.jsonData, '$' COLUMNS ( col1 VARCHAR(10) PATH '$.col1', col2 VARCHAR(10) PATH '$.col2', col3 VARCHAR(10) PATH '$.col3' )) j;
使用以上的SQL語句,同樣得到以下結果。
col1 | col2 | col3 | |-------|-------|-------| | val11 | val12 | val13 | | val21 | val22 | val23
總之,MySQL提供了多種可以處理JSON類型數據的函數,使得我們能夠更加方便地獲取或操作數據。以上是JSON數組按列顯示的一種方法,可以根據自己的需求選擇合適的方式。