溫馨提示×

mysql動態(tài)行轉(zhuǎn)列怎么實現(xiàn)

小億
133
2024-03-28 10:04:00
欄目: 云計算

在MySQL中將動態(tài)行轉(zhuǎn)列可以使用GROUP_CONCAT函數(shù)以及動態(tài)SQL語句來實現(xiàn)。以下是一個示例代碼:

假設有一個表格名為data,包含以下數(shù)據(jù):

id name value
1 attribute1 10
1 attribute2 20
2 attribute1 15
2 attribute2 25

要將這些數(shù)據(jù)按照id進行行轉(zhuǎn)列,可以使用以下SQL語句:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(CASE WHEN name = ''',
      name,
      ''' THEN value END) AS ',
      name
    )
  ) INTO @sql
FROM data;

SET @sql = CONCAT('SELECT id, ', @sql, ' FROM data GROUP BY id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

運行以上代碼后,將獲得以下結(jié)果:

id attribute1 attribute2
1 10 20
2 15 25

這樣就實現(xiàn)了將動態(tài)行轉(zhuǎn)列的功能。

0