ฉันกำลังเรียกใช้คำสั่ง SQL เป็นชุด (โดยใช้mysql
ไบนารีบรรทัดคำสั่ง) ฉันต้องการให้คำสั่ง SELECT หลายคำสั่งของฉันไม่พิมพ์ส่วนหัวของคอลัมน์เพียงแค่ระเบียนที่เลือก เป็นไปได้หรือไม่
ฉันกำลังเรียกใช้คำสั่ง SQL เป็นชุด (โดยใช้mysql
ไบนารีบรรทัดคำสั่ง) ฉันต้องการให้คำสั่ง SELECT หลายคำสั่งของฉันไม่พิมพ์ส่วนหัวของคอลัมน์เพียงแค่ระเบียนที่เลือก เป็นไปได้หรือไม่
คำตอบ:
เรียกใช้ mysql ด้วยอ็อพชัน-N
(นามแฝงสำหรับ-N
is --skip-column-names
):
mysql -N ...
use testdb;
select * from names;
+------+-------+
| 1 | pete |
| 2 | john |
| 3 | mike |
+------+-------+
3 rows in set (0.00 sec)
ให้เครดิตกับ ErichBSchulz ที่ชี้ให้เห็นนามแฝง -N
ในการลบเส้นตาราง (เส้นแนวตั้งและแนวนอน) รอบ ๆ ผลลัพธ์ให้ใช้-s
( --silent
) คอลัมน์จะถูกคั่นด้วยTAB
อักขระ
mysql -s ...
use testdb;
select * from names;
id name
1 pete
2 john
3 mike
การส่งออกข้อมูลที่มีส่วนหัวและไม่มีตารางเพียงแค่ใช้ทั้งสองและ-s
-N
mysql -sN ...
TABLES=$(mysql -sN -u $DB_USER -p$DB_PASS
...
set feedback on
และset feedback off
สามารถใช้ได้ทุกที่ในเซสชัน MySQL เทียบเท่าหรือไม่? ดูเหมือนว่านั่นคือสิ่งที่ OP กำลังมองหา
คุณสามารถปลอมได้ดังนี้:
-- with column headings
select column1, column2 from some_table;
-- without column headings
select column1 as '', column2 as '' from some_table;
Error: Type mismatch: expected type string, but got
ข้อผิดพลาดกับนามแฝงว่างเปล่า
select column1 as ' ', column2 as ' ' from some_table;
-N