プロが教える店舗&オフィスのセキュリティ対策術

バッチの実行結果の件数%count%を、5桁の右寄せ(結果が1桁のばあいは、スペース4桁を頭に入れてる)でテキストファイルresult.txt に出力したいのですが、下記のように書くと、
table1 : ("d\n",0) 件  と出力されてしまいます。
table1 :    0 件   と出力されるようにするにはどうしたらよいのでしょうか?

for /f %%i in ('mysql -u root -p ^< "c:\bat\test.sql"') do set count=("%5d\n",%%i)
echo table1 : %count% 件 >> "c:\bat\result.txt"

A 回答 (2件)

>何故かエラーになって



じゃ、手抜きしないで念のためキャストしてみますか?

select concat('result:',lpad(cast(count(*) as signed),5,' ')) as result from table1
union all select concat('result:',lpad(cast(count(*) as signed),5,' ')) from table2
union all select concat('result:',lpad(cast(count(*) as signed),5,' ')) from table3;

それでもエラーになるようなら一度UNIONしないで落ちるかどうかみてみては?

select concat('result:',lpad(cast(count(*) as signed),5,' ')) as result from table1;
    • good
    • 0
この回答へのお礼

成功しました。ありがとうございました。

お礼日時:2011/08/23 11:47

>スペース4桁を頭に入れてる



前回のつづきですね

select concat('result:',lpad(count(*),5,' ')) as result from table1
union all select concat('result:',lpad(count(*),5,' ')) from table2
union all select concat('result:',lpad(count(*),5,' ')) from table3;

で、いかがですか?

この回答への補足

アドバイスしていただいた通りに実行したつもりですが、
何故かエラーになって何も出力されなくなってしまいます。
何かありましたら、おしえていただきたいです。

補足日時:2011/08/22 17:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!