ฉันจะระงับเอาต์พุตส่วนหัวของคอลัมน์สำหรับคำสั่ง SQL เดียวได้อย่างไร


115

ฉันกำลังเรียกใช้คำสั่ง SQL เป็นชุด (โดยใช้mysqlไบนารีบรรทัดคำสั่ง) ฉันต้องการให้คำสั่ง SELECT หลายคำสั่งของฉันไม่พิมพ์ส่วนหัวของคอลัมน์เพียงแค่ระเบียนที่เลือก เป็นไปได้หรือไม่

คำตอบ:


249

เรียกใช้ mysql ด้วยอ็อพชัน-N(นามแฝงสำหรับ-Nis --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 ...

4
ทางลัดใน-N
ErichBSchulz

4
-sN ทำงานได้ดีสำหรับฉันในการกำหนดผลลัพธ์ให้กับตัวแปรในสคริปต์: TABLES=$(mysql -sN -u $DB_USER -p$DB_PASS...
Michael J

5
สิ่งนี้ใช้ได้กับทั้งเซสชันไม่ใช่เฉพาะกับคำสั่ง SQL เพียงคำสั่งเดียว Oracle SQLPlus มีset feedback onและset feedback offสามารถใช้ได้ทุกที่ในเซสชัน MySQL เทียบเท่าหรือไม่? ดูเหมือนว่านั่นคือสิ่งที่ OP กำลังมองหา
codeforester

เพียงแสดงความคิดเห็นสั้น ๆ ทำให้ง่ายขึ้นโดยใช้select * จาก testdb.names; โดยไม่ต้อง 'ใช้' อย่างชัดเจน
FCM

15

คุณสามารถปลอมได้ดังนี้:

-- 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ข้อผิดพลาดกับนามแฝงว่างเปล่า
QkiZ

ดูเหมือนว่าข้อผิดพลาดนั้นมาจาก MySQL Workbench ไม่ใช่จาก MySQL อย่างไรก็ตามคุณสามารถใช้พื้นที่ว่างเดียวแทนสตริงว่างได้และดูเหมือนว่าจะใช้งานได้ใน MySQL Workbench:select column1 as ' ', column2 as ' ' from some_table;
Tom Warfield
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.