簡體   English   中英

BASH Mysql輸出語句的一部分

[英]BASH Mysql outputs part of statement

我正在嘗試運行以下腳本來獲取組織列表以及每個組織擁有的用戶數量:

#!/bin/bash

array=(293 182 177 12 85 51 325 225 40 169 357 329 243 349 291 295 22 279 16 69 219 299 301 331 91 281 285 59 283 341 45 289 95 61 77 13 14 201 43 343 223 28 171 26 233 47 303 367 369 339 257 305 353 245 213 87 345 2 71 199 24 179 259 37 35 237)

for i in "${array[@]}"; do   

query=$(export MYSQL_PWD=MYPASS; mysql -e "SELECT COUNT(*) FROM Org.Users WHERE HomeOrgID=$i;")

echo "Org_$i:$query"  

done

我希望結果是一個簡單的“ Org:Number”列表:

Org_1:150
Org_25:250
Org_17:64
Org_64:12

但是輸出顯示不正確。 它確實顯示了MySQL語句的一部分:

Org_293:COUNT(*)
1
Org_182:COUNT(*)
0
Org_177:COUNT(*)
8
Org_12:COUNT(*)
0
Org_85:COUNT(*)
1

如何使輸出不顯示“ COUNT(*)”而僅顯示一個簡單列表?

提前致謝!

一個快速的技巧:使用bash數組存儲您的輸出。

#!/bin/bash

array=(293 182 177 12 85 51 325 225 40 169 357 329 243 349 291 295 22 279 16 69 219 299 301 331 91 281 285 59 283 341 45 289 95 61 77 13 14 201 43 343 223 28 171 26 233 47 303 367 369 339 257 305 353 245 213 87 345 2 71 199 24 179 259 37 35 237)

for i in "${array[@]}"; do  
    # we store the result of the request as an array
    query=($(export MYSQL_PWD=MYPASS; mysql -e "SELECT COUNT(*) FROM Org.Users WHERE HomeOrgID=$i;"))

    # we echo the 2nd member of the array. ${query[0]} should contain 'count(*)'
    echo "Org_$i:${query[1]}"

done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM