Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Loop de script Bash através do MySQL


algo como:
mysql -e "SELECT `theme_name`, `guid` FROM `themes` WHERE `theme_purchased`='1' AND `theme_compiled`='0'" | while read theme_name guid; do
    # use $theme_name and $guid variables
    echo "theme: $theme_name, guid: $guid"
done

resumindo:o mysql O comando gera registro separado por '\n' e campos separados por '\t' quando a saída é um pipe. o read O comando lê uma linha, divide em campos e coloca cada um em uma variável.

se seus dados tiverem espaços nos campos, você terá alguns problemas com o padrão read divisão. existem algumas maneiras de contornar isso; mas se você estiver lendo apenas dois campos e um deles não deve ter espaços (como o guid ), então você pode colocar o campo 'perigoso' no final e read colocará tudo 'extra' na última variável.

assim:
mysql -e "SELECT `guid` `theme_name`, FROM `themes` WHERE `theme_purchased`='1' AND `theme_compiled`='0'" | while read guid theme_name; do
    # use $theme_name and $guid variables
    echo "theme: $theme_name, guid: $guid"
done