MySQLではmysql
コマンドでSELECT
文を発行すると枠線をつけて結果を出力してくれる。このように:
❯ mysql -uroot mydb -e 'SELECT id FROM mytable'
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
+----+
出力を眺めるだけならこれで問題ない。しかし、出力結果をシェルスクリプトで処理するような場合はもっとシンプルな出力が理想的。
出力から枠線を消すオプションに--silent
がある。
❯ mysql -uroot mydb -e 'SELECT id FROM mytable' --silent
id
1
2
3
更にヘッダ行も不要な場合は--skip-column-names
オプションをつけると良い。
❯ mysql -uroot mydb -e 'SELECT id FROM mytable' --silent --skip-column-names
1
2
3
どちらのオプションも短縮形で指定することもできる。--silent
は-s
、--skip-column-names
は-N
になる。
❯ mysql -uroot mydb -e 'SELECT id FROM mytable' -sN
1
2
3
ちなみにSELECT文をシェルのfor
で回すときは次のように書ける。
for ID in $(mysql -uroot mydb -e 'SELECT id FROM mytable' -sN)
do
echo "id ... $ID"
done
出力結果
id ... 1
id ... 2
id ... 3