Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thực thi truy vấn MySQL từ terminal mà không in kết quả?

Chạy truy vấn MySQL từ terminal không hiển thị kết quả

Để thực thi truy vấn từ dòng lệnh MySQL mà không in kết quả ra màn hình, gán kết quả vào biến người dùng (user-defined variable) với tiền tố @.

Ví dụ minh họa

Tạo bảng DemoTable709:

mysql> CREATE TABLE DemoTable709 (Amount INT);
Query OK, 0 rows affected (0.62 sec)

Chèn dữ liệu:

mysql> INSERT INTO DemoTable709 VALUES(100);
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable709 VALUES(560);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable709 VALUES(7800);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable709 VALUES(1020);
Query OK, 1 row affected (0.15 sec)

Xem dữ liệu:

mysql> SELECT * FROM DemoTable709;
+--------+
| Amount |
+--------+
| 100    |
| 560    |
| 7800   |
| 1020   |
+--------+
4 rows in set (0.00 sec)

Gán kết quả SUM vào biến @TotalAmount (không in ra màn hình):

mysql> SET @TotalAmount = (SELECT SUM(Amount) FROM DemoTable709);
Query OK, 0 rows affected (0.00 sec)

Nếu muốn xem giá trị biến:

mysql> SELECT @TotalAmount;
+--------------+
| @TotalAmount |
+--------------+
| 9480         |
+--------------+
1 row in set (0.05 sec)

Ứng dụng thực tế

  • Sử dụng trong script/batch file để xử lý logic mà không làm nhiễu output
  • Kết hợp với PREPARE/EXECUTE cho dynamic SQL
  • Truyền giá trị giữa các truy vấn trong cùng session

Các cách khác để ẩn output

Phương phápMô tả
Biến người dùng (@var)Lưu kết quả scalar, dùng tiếp trong session
SELECT ... INTO @varCú pháp thay thế: SELECT SUM(Amount) INTO @TotalAmount FROM DemoTable709;
Redirect outputTừ shell: mysql -e "query" > /dev/null (Linux) hoặc NUL (Windows)
Option -s (silent)mysql -s -e "query" giảm định dạng bảng, vẫn in dữ liệu
Option -N (skip column names)mysql -N -e "query" bỏ header cột