sql >> Database teknologi >  >> RDS >> Mysql

Bash Script loop gennem MySQL

noget som:

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

kort sagt:mysql kommandoudgange record adskilt af '\n' og felter adskilt af '\t', når outputtet er et rør. den read kommando læser en linje, opdeler i felter og sætter hver på en variabel.

hvis dine data har mellemrum i felterne, får du nogle problemer med standard read opsplitning. der er nogle måder uden om det; men hvis du kun læser to felter, og et af dem ikke burde have mellemrum (såsom guid ), så kan du sætte feltet 'farlig' til sidst og read vil sætte alt 'ekstra' i den sidste variabel.

sådan her:

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. PostgreSQL konvertere kolonner til rækker? Transponere?

  2. Sådan installeres og konfigureres ClickHouse på Ubuntu 20.04

  3. Hvordan udtrækker du en numerisk værdi fra en streng i en MySQL-forespørgsel?

  4. Hvor får jeg libpq-kilden?