LoginSignup
2
2

More than 5 years have passed since last update.

ワイランナーでmysqlからデータを操作する。〜mysqlオプション編〜

Last updated at Posted at 2017-12-05

概要

  • 通常、bashなどのCLI上からmysqlからデータを取得したい場合、
mysql
$ mysql -u ${user} -p 
mysql >
...

のような形で起動してmysqlのデータを確認したりしていると思いますが、オプションの-eを使うとbashのCLI上でデータ操作が可能になります。

--execute=statement, -e statement
ステートメントを実行して、終了します。デフォルトの出力形式は、--batch で生成されるものと同様です。例については、セクション4.2.4「コマンド行でのオプションの使用」を参照してください。このオプションでは、mysql は履歴ファイルを使用しません。
4.5.1.1 mysql のオプション

実例

mysql
$ mysql -u ${user} -p -D ${db_name} -e "select * from ${table_name}";
Enter password: 
+--------------+---------------------+
| id    | created_at                 |
+--------------+---------------------+
| aaaaa | 2016-04-18 18:07:42.000000 |
| bbbbb | 2016-04-18 18:07:42.000000 |
+--------------+---------------------+

※カラム名は例です。

Tips集

ちなみに取得データをファイルに落としたい場合もあるとおもいます。その場合は、リダイレクトを利用してファイルに落とすことも可能です。
リダイレクションの「>」「 >>」とパイプ「 | 」の違い。

mysql
$ mysql -u root -p -D memberprovision -e "mysql -u ${user} -p -D ${db_name} -e "select * from ${table_name}" > test.list
Enter password: 

$ head -n 10 test.list 
id  created_at
aaaaa   2016-04-18 18:07:42.000000
bbbbb   2016-04-18 18:07:42.000000

また、取得したものの中でヘッダー部分がいらない場合は、オプション「-B」と「-N」をつけます。
そうすると「id」と「created_at」が消えます。

bash
$ mysql -u root -p -D memberprovision -B -N -e "mysql -u ${user} -p -D ${db_name} -e "select * from ${table_name}" > test.list
Enter password: 
$ head -n 10 test.list 
aaaaa   2016-04-18 18:07:42.000000
bbbbb   2016-04-18 18:07:42.000000

以上です。他にもこんなTipsあるよという方はぜひコメントください!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2