2010-02-16 27 views
19

Chấm dứt truy vấn MySQL với \G thay vì ; sẽ khiến MySQL trả về tập kết quả theo định dạng dọc, đôi khi dễ đọc hơn nếu số cột được trả về lớn.Tại sao G trong SELECT * FROM table_name G?

Ví dụ:

mysql> SELECT * FROM help_keyword LIMIT 3\G 
*************************** 1. row *************************** 
help_keyword_id: 0 
      name: JOIN 
*************************** 2. row *************************** 
help_keyword_id: 1 
      name: REPEAT 
*************************** 3. row *************************** 
help_keyword_id: 2 
      name: SERIALIZABLE 
3 rows in set (0.00 sec) 

Câu hỏi của tôi hỏi vì tò mò tinh khiết: Có bất kỳ lý do đằng sau việc lựa chọn sự kết hợp nhân vật \G?

Trả lời

7

những suy nghĩ của tôi:

  1. Nó có thể có nghĩa là "đi".
  2. Postgresql cũng sử dụng \ g làm trình kết thúc câu lệnh. Postgresql cũ hơn MySQL nên nó có thể ảnh hưởng đến chúng.

Nhưng như tôi đã chỉ ra trong nhận xét của tôi về bài đăng của Andriyev ở trên, nó thực sự làm cho chữ hoa \ G khiến màn hình được đặt theo chiều dọc. Chữ thường \ g không có hiệu ứng đó, hoặc nếu có thì tài liệu không đề cập đến nó. (Tôi không có một MySQL cài đặt tiện dụng để thử nó ra.)

+4

"\ g" tương đương với ";" trong MySQL –

0

Nó phù hợp với lệnh Unix 'ls' tùy chọn định dạng

+0

Làm cách nào để khớp với các tùy chọn định dạng ls? Bạn có nghĩa là "ls -G"? – knorv

+0

Không, -G jsut ẩn nhóm. Và -g chỉ giấu chủ nhân. Bạn không chắc mình đang nghĩ gì, nhưng -1 cho thấy nó trong 1 cột. – MJB

17

ngắn trả lời
Các dấu chấm phẩy phổ biến lệnh terminator ; thực sự là viết tắt cho các \g lệnh, mà là ở bản thân viết tắt cho lệnh go. Lệnh go được sử dụng cả về mặt lịch sử và hiện tại trong các hương vị khác của SQL để gửi các lô lệnh được biên dịch và/hoặc được giải thích bởi máy chủ. Lệnh \G dường như thừa kế đó là thư đặc trưng từ \g, và được viết hoa để chỉ ra thêm một hành vi sửa đổi, như mô tả của ...
mysql> help ... \g go Send command to mysql server. \G ego Send command to mysql server, display result vertically. ...

Còn trả lời (Nó thực sự nên \ E)
Nhập help tại dấu nhắc mysql liệt kê tất cả các lệnh mysql có thể, bao gồm goego được hiển thị ở trên. Lệnh ego mua lại một được thêm vào trước 'e' chỉ ra rằng hình thức này của lệnh go cũng thông qua một hành vi mà thông thường sẽ được áp dụng bằng cách gọi mysql với công tắc tương tự mysql -E

Từ man mysql... ... --vertical, -E Print query output rows vertically (one line per column value). Without this option, you can specify vertical output for individual statements by terminating them with \G. ...

Vậy tại sao sử dụng -E như viết tắt cho --vertical? ... Vì cả hai V, ve đã được gán làm công tắc cho các hành vi gọi khác. Lệnh ego chỉ có thể dễ dàng sử dụng \E làm lối tắt, nhưng gây nhầm lẫn với phiên bản được viết hoa của lệnh \g.

Tóm tắt ...
--vertical >>-E >>cái tôi >>\ G ... Tada!

+1

Giải thích tuyệt vời về ý nghĩa của biểu tượng này và lý do/quy ước đằng sau nó. Đây sẽ là câu trả lời được chấp nhận. – Aaron