SQL 结果在批处理文件中

SQL results in Batch FIle

先生。这是我的代码

@echo off 
SET path=C:\Users\neca\Desktop cd C:\wamp\bin\mysql\mysql5.5.24\bin 

FOR /F "tokens=*" %%D IN ('mysql -uroot -e "SHOW TABLES from sample"') do echo %%D

pause

但是在我的数据库中我只有 2 tables(样本和测试)。为什么 此代码的输出是

Tables_in_sample 
sample 
test

其中 Tables_in_sample 是我没有制作的 table。

Tables_in_sample 只是来自 mysql 客户端的 header

例子

mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
28 rows in set (0.00 sec)

mysql>

看到输出的header是Tables_in_mysql

建议

只需使用 -ANe 而不是 -e

禁用 headers
@echo off 
SET path=C:\Users\neca\Desktop cd C:\wamp\bin\mysql\mysql5.5.24\bin 

FOR /F "tokens=*" %%D IN ('mysql -uroot -ANe "SHOW TABLES from sample"') do echo %%D

pause

试一试!!!

@回声关闭 设置路径=C:\Users\neca\Desktop cd C:\wamp\bin\mysql\mysql5.5.24\bin

FOR /F "tokens=*" %%D IN ('mysql -uroot -N -B -e "SHOW TABLES from sample"') do echo %%D