การ Execute Query แบบไม่แสดงผลด้วย User-defined Variable
เมื่อต้องการรันคิวรี่จาก Command Line/Terminal แต่ไม่ต้องการแสดงผลลัพธ์บนหน้าจอ สามารถเก็บผลลัพธ์ไว้ใน User-defined Variable (ขึ้นต้นด้วย @) แทน
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล:
mysql> CREATE TABLE DemoTable709 (Amount INT); Query OK, 0 rows affected (0.62 sec) mysql> INSERT INTO DemoTable709 VALUES (100), (560), (7800), (1020); Query OK, 4 rows affected
รันคิวรี่คำนวณผลรวม โดยไม่แสดงผล เก็บไว้ในตัวแปร @TotalAmount:
mysql> SET @TotalAmount = (SELECT SUM(Amount) FROM DemoTable709); Query OK, 0 rows affected (0.00 sec)
เมื่อต้องการดูผลลัพธ์ภายหลัง ให้ SELECT ตัวแปรนั้น:
mysql> SELECT @TotalAmount;
+--------------+ | @TotalAmount | +--------------+ | 9480 | +--------------+ 1 row in set (0.05 sec)
วิธีอื่น: ใช้ Flag -s หรือ --silent (Client Side)
หากรันจาก Shell Script หรือ Command Line โดยตรง:
mysql -u root -p -s -e "SELECT SUM(Amount) FROM DemoTable709" database_name
-s/--silent- ลดการแสดงผล (Tab-separated, ไม่มีตาราง)-N/--skip-column-names- ไม่แสดงชื่อคอลัมน์-B/--batch- โหมด Batch (Tab-separated, เหมาะสำหรับ Pipe/Redirect)
กรณีใช้งานจริง
- Script 自动化 ที่ต้องการค่ากลับมาแต่ไม่ต้องการ Log บนหน้าจอ
- Storing intermediate results สำหรับคิวรี่ต่อไป
- การ Debug ที่ต้องการแยกการคำนวณและการแสดงผล