Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

รันคิวรี่ MySQL จาก Terminal โดยไม่แสดงผลลัพธ์ (Silent Mode)

การ 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 ที่ต้องการแยกการคำนวณและการแสดงผล