On Thursday 12 January 2006 11:40 am, George Law wrote:
> Mark,
>
>
>
> Sql is an alias to mysq -u.....
>
> What about something like :
>
>
>
> declare -a TEAMS=(`echo "query"|sql|sed 's/$/",/g'|sed 's/^/"/g'|sed
> 's/"$//'`)
>
>
>
> since the query returns the results 1 per line, the first sed prefixes
> each line with a quote
>
> second sed replaces the newline with quote comma, turning it into 1 line
> string. Last sed drops off the last quote
>
>
>
> I gave this command and bash didn't complain :-) so I assume it worked.
>
>
I actually ended up with something similar:
declare TEAM_QUERY="`mysql ${ACCESS_PARAMS} --exec "select distinct team from
registered order by team"`"
declare -a TEAMS=(`echo "${TEAM_QUERY}"|sed 's/^/"/g'|sed 's/$/"/g'`)
Commas are not used in the definition of an array - just spaces between quoted
strings.
Thanks for your help!
>
>
>
>
>
> -----Original Message-----
> From: Mark Phillips [mailto:[EMAIL PROTECTED]
> Sent: Thursday, January 12, 2006 12:44 PM
> To: MYSQL List
> Subject: Question regarding running 'mysql' from a bash script
>
>
>
> There is a column in my table with string values, but the strings have
> spaces
>
> in them. I want to read the unique column values into an array in my
> bash
>
> script, so I can use these values in a separate query on this table. How
> do I
>
> get the values into an array?
>
>
>
> For example, the column teams in my table
>
>
>
> | team |.....
>
> Red Sox
>
> Chicago Colleens
>
> Athletics
>
> Kenosha Comets
>
> Red Sox
>
>
>
> and I want to create the equivalent statement, but using what I find in
> the
>
> table"
>
>
>
> declare -a TEAMS=("Red Sox" "Chicago Colleens" "Athletics" "Kenosha
> Comets")
>
>
>
> I tried the following:
>
> declare -a TEAMS=(`mysql -u "$USER" -h "$HOST" --password="$PASSWORD" -D
>
>
> "$DATABASE" -B --disable-column-names --exec "select distinct team from
>
> registered order by team"`)
>
>
>
> but I get the following array (using the data above)
>
>
>
> ("Red" "Sox" "Chicago" "Colleens" "Athletics" "Kenosha" "Comets")
>
>
>
> How do I either (1) add quotes around each row entry returned so I get
> the
>
> right array, or (2) fill the array in a different way?
>
>
>
> Thanks!
>
>
>
> --
>
> Mark Phillips
>
> Phillips Marketing, Inc
>
> [EMAIL PROTECTED]
>
> 602 524-0376
>
> 480 945-9197 fax
>
>
>
> --
>
> MySQL General Mailing List
>
> For list archives: http://lists.mysql.com/mysql
>
> To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]
>
>
>
>
--
Mark Phillips
VP Softball
Arcadia Little League
www.ArcadiaLittleLeague.org
[EMAIL PROTECTED]
602 524-0376
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]