sql >> Database >  >> RDS >> Mysql

Bash Script Loop Through MySQL

zoiets als:

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

kortom:de mysql commando voert record uit, gescheiden door '\n' en velden gescheiden door '\t' wanneer de uitvoer een pijp is. de read commando leest een regel, splitst in velden, en zet elk op een variabele.

als uw gegevens spaties in de velden hebben, krijgt u wat problemen met de standaard read splitsen. er zijn een aantal manieren om het te omzeilen; maar als u slechts twee velden leest en een ervan mag geen spaties bevatten (zoals de guid ), dan kun je het veld 'gevaarlijk' aan het einde zetten en read zal alles 'extra' in de laatste variabele zetten.

zoals dit:

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


  1. Oplossingen voor INSERT OF UPDATE op SQL Server

  2. Welk gegevenstype moet worden gebruikt voor het gehashte wachtwoordveld en welke lengte?

  3. Mysql-telling aantal regex-overeenkomsten per veld

  4. Applicatiegebruikers versus beveiliging op rijniveau