WEBサーバーとDBサーバーが一緒の場合は「into outfile」文を用いることで
ローカルディスクにCSVエクスポートを行えるが、DBがリモート接続の別サーバーだとこれが出来ない。
そんな時は下記の様にすると幸せになれる模様。
mysql -u [ユーザー名] -p -h [DBサーバーホスト名] [DB名] -e "[実行するSQL文]" | sed -e 's/\t/,/g' > [出力CSVファイルパス]
とても素晴らしい神SQLだね。
WEBサーバーとDBサーバーが一緒の場合は「into outfile」文を用いることで
ローカルディスクにCSVエクスポートを行えるが、DBがリモート接続の別サーバーだとこれが出来ない。
そんな時は下記の様にすると幸せになれる模様。
mysql -u [ユーザー名] -p -h [DBサーバーホスト名] [DB名] -e "[実行するSQL文]" | sed -e 's/\t/,/g' > [出力CSVファイルパス]
とても素晴らしい神SQLだね。
めも。
mysqlにログイン時、「-e」オプションに続けてSQLを記述すると
実行したいSQLをmysql側に送りつける事ができる。
mysql -u root -p db_name -e "select * from tbl_name where 1 = 1"
と言った具合。
めも。
select repeat('hoge', 3) ↓ hogehogehoge
めも。
select length('1234567890'); ↓ 10
文字列の中から特定の文字が見つかるまでのインデックス番号を求める方法。
select locate('abc', '00000000abc0000000'); ↓ 9
めも。
select substring('123456789', 2); ↓ 23456789 select substring('123456789', 2, 5); ↓ 23456
第3引数を指定しない場合、第2引数から最後までの文字列が返却される。
ちなみにMySQLの1文字目は0でなく1から始まるので注意されたし。
めも。
select replace('hogehogehoge', 'o', '!!'); ↓ h!!geh!!geh!!ge
分かりやすいね。
めも。
select lpad('hoge', 10, '0'); ↓ 000000hoge
第3引数はクォーテーションでくくらないとおかしいことになるので注意。