1. 程式人生 > 資料庫 >shell簡單處理mysql查詢結果的方法

shell簡單處理mysql查詢結果的方法

首先理清要了解shell指令碼的陣列與字串的一些特性:

str=("hello" "world" "!") #結果: str: 3 #普通的字串陣列
echo "str: " ${#str[@]}
str1=("hello world !") #結果: str1: 1 #普通的字串陣列
echo "str1: "${#str1[@]}
str2=(`echo "Hello world !"`) #結果: str2: 3 #等價於 str
echo "str2: " ${#str2[@]} 


function strDeal(){
  param=("$@")
  echo ${param[@]}
  echo $1
  echo $2
  echo $3
}
echo "-----------first----------------"
strDeal "Hello world !" 
echo "-----------second----------------"
strDeal "Hello" "world" "!"
echo "-----------third----------------"
strDeal $str1  #等價於second

用mysql自帶資料庫world.city為例來展示處理查詢結果

#!/bin/sh
#filename:demo.sh
cityRes=""
cityColNum=5
function getCurValue(){
  curValue=""
  colIndex=$1
  rowIndex=$2
  idx=$[$cityColNum*$colIndex+$rowIndex-1]  #通過行列進行計算目標位置
  if [ $idx -le ${#cityRes[@]} ] ;then
    echo ${cityRes[$idx]} #獲取目標結果
  fi
}

#獲取city表總行數
function getCityRowNum(){
  echo $[${#cityRes[@]}/$cityColNum-1]
}


cityRes=(`mysql -uroot -p123456 world -e "select * from city"`)  #查詢結果以陣列來儲存,等價於上面的str2
curValue=`getCurValue $1 $2`  #$1為行數 $2為列數
echo $curValue
rowNum=`getCityRowNum` #獲取總行數
echo $rowNum

呼叫示例

sh demo.sh 1 2

注意的事項

getCityRowNum後的記錄數與實際的記錄數並不一致,這是由於city表Name 或者District欄位中由於多個字串組成,如:Andorra la Vella

這樣就會佔用3個位置。

以上這篇shell簡單處理mysql查詢結果的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。