SHELL:MySQL命令返回NULL

时间:2015-09-03 08:08:08

标签: bash

我需要一些我有这个代码

ignore_tbl=("mg_de_reifen_import_temp" "mg_de_reifen_import" "mg_de_reifen_import_last")

until mysqladmin -u$dbUser -p$dbPass ping; do echo "Waiting for mysqld"; sleep 10; done
mysql -u$dbUser -p$dbPass -e "create database if not exists $dbName"

    IGNORED_TABLES_STRING=''
                            for TABLE in "${ignore_tbl[@]}"
                                do
                                   IGNORED_TABLES_STRING+="table_schema = 'exclude_test' AND table_name LIKE '${TABLE}' AND "
                                done
                                TEST="${IGNORED_TABLES_STRING:0:-5}"

                            echo $TEST

mg_=`mysql -u$dbUser -p$dbPass -e "SET SESSION group_concat_max_len = 200000; SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) FROM information_schema.tables WHERE $TEST;" -s` echo $mg_

它返回NULL

结果是

mysqld is alive
    table_schema = 'exclude_test' AND table_name LIKE    'mg_de_reifen_import_temp' AND table_schema = 'exclude_test' AND table_name LIKE 'mg_de_reifen_import' AND table_schema = 'exclude_test' AND table_name LIKE 'mg_de_reifen_import_last'
NULL

1 个答案:

答案 0 :(得分:1)

您的测试永远不会成功,因为'mg_de_reifen_import_tempmg_de_reifen_import_last不同 - 您需要调整构建测试语句的方式,也许您需要更多类似的内容:

table_schema = 'exclude_test' AND table_name IN ( 'mg_de_reifen_import_temp', 'mg_de_reifen_import', 'mg_de_reifen_import_last' )