MySQL的列轉行函數,指的是將一行中多個列的值,轉換為一列中的多個值。這可以通過聚合函數和條件表達式來實現。
以下是一個將多列轉換為行的示例:
SELECT id, MAX(CASE WHEN attribute_name = 'color' THEN attribute_value END) AS color, MAX(CASE WHEN attribute_name = 'size' THEN attribute_value END) AS size, MAX(CASE WHEN attribute_name = 'material' THEN attribute_value END) AS material FROM products_attributes GROUP BY id;
上面的代碼中,我們使用了 MAX 函數和 CASE 語句,將 products_attributes 表中的多個屬性值,根據 id 聚合為一行。
注意,如果要在 GROUP BY 語句中的每個非聚合列都在 SELECT 中出現,那么就沒有必要在 SELECT 中使用 DISTINCT 修飾符。因為這樣做只會增加額外的計算開銷。
在實際應用中,列轉行函數經常被用于按需加載數據,這可以顯著地提高查詢性能。
上一篇mysql列表查詢的軟件
下一篇vue導出excel數據