การจัดรูปแบบตัวเลขเป็น Currency
ใช้ FORMAT() จัดรูปแบบตัวเลขพร้อม comma แล้ว CONCAT() เพิ่มสัญลักษณ์สกุลเงิน
รูปแบบคำสั่ง
SELECT CONCAT('CurrencySymbol', FORMAT(yourColumnName, decimalPlaces)) AS anyVariableName
FROM yourTableName;
ตัวอย่างสร้างตารางและข้อมูล
mysql> CREATE TABLE AddingCurrencySymbolDemo (
-> Amount INT
-> );
Query OK, 0 rows affected (1.50 sec)
mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(250);
mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(500);
mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(1000);
mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(750);
ข้อมูลต้นฉบับ
mysql> SELECT * FROM AddingCurrencySymbolDemo;
+--------+ | Amount | +--------+ | 250 | | 500 | | 1000 | | 750 | +--------+ 4 rows in set (0.00 sec)
คำสั่งแปลงเป็นรูปแบบเงิน (ดอลลาร์ ไม่มีทศนิยม)
mysql> SELECT CONCAT('$', FORMAT(Amount, 0)) AS AddedCurrency
-> FROM AddingCurrencySymbolDemo;
+---------------+ | AddedCurrency | +---------------+ | $250 | | $500 | | $1,000 | | $750 | +---------------+ 4 rows in set (0.00 sec)
FORMAT(number, decimals) รายละเอียด:
- ปัดเศษตามจำนวนทศนิยมที่กำหนด
- เพิ่ม comma ทุก 3 หลัก (thousands separator)
- คืนค่าเป็น STRING ไม่ใช่ NUMBER
- ใช้ locale ของ server สำหรับ decimal point และ thousands separator
ตัวอย่างเพิ่มเติม:
-- บาทไทย 2 ทศนิยม
SELECT CONCAT('฿', FORMAT(amount, 2)) FROM transactions;
-- ใช้ CONCAT_WS สำหรับ space
SELECT CONCAT_WS(' ', 'USD', FORMAT(amount, 2)) FROM orders;
-- เก็บเป็น computed column (MySQL 5.7+)
ALTER TABLE orders ADD COLUMN price_formatted VARCHAR(20)
GENERATED ALWAYS AS (CONCAT('$', FORMAT(price, 2))) STORED;