首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 計算欄位實戰:CONCAT 串聯、算術運算、別名與測試技巧

     編輯:MySQL 資料庫相關知識

計算欄位 (Computed Column) 指查詢時即時運算產生、不儲存於表中的虛擬欄位。MySQL 支援 CONCAT 串聯、四則運算、函數呼叫等,配合 AS 別名提升可讀性。

1. 字串串聯


SELECT CONCAT(name, '(', country, ')') AS title
FROM company
ORDER BY name;

2. 算術運算


SELECT prod_num * prod_price AS total_price, prod_name
FROM products;

3. 測試運算邏輯 (無需表)


SELECT 3 * 2;        -- 6
SELECT NOW();        -- 當前時間
SELECT CONCAT('Hello', ' ', 'World');  -- Hello World

4. 進階:虛擬欄位持久化 (MySQL 5.7+)


-- 虛擬欄位 (查詢時計算,不佔空間)
ALTER TABLE orders ADD COLUMN total_price DECIMAL(10,2)
  GENERATED ALWAYS AS (quantity * unit_price) VIRTUAL;

-- 儲存欄位 (寫入時計算,佔空間,可建索引)
ALTER TABLE orders ADD COLUMN total_price_stored DECIMAL(10,2)
  GENERATED ALWAYS AS (quantity * unit_price) STORED;

避坑提醒

  • CONCAT 任一參數為 NULL 結果為 NULL,建議用 COALESCE 或 CONCAT_WS。
  • 計算欄位不可直接用於 WHERE (虛擬欄位除非建立索引),需包裝子查詢或重寫條件。
  • 儲存欄位雖可建索引,但會增加寫入開銷與儲存空間,視查詢頻率權衡。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved