寫yi一個mysql預存程序

來源:互聯網
上載者:User

標籤:

 1 //預存程序,利用已知的經緯度查詢其他文章距離自己的距離。juli的演算法是網上拿的 2             //如果存在就刪除這個預存程序 3             >>     drop procedure if exists `get_distance`;  4             //設定預設結束符為%% 5             >>     delimiter %% 6             //開始建立語句,4個參數,in 表示輸入值,可以省略;格式: in 變數名 類型 7             >>     create procedure get_distance (in lng_put decimal(12,8),in lat_put decimal(12,8),in where_str varchar(255),in limit_str varchar(100)) 8             //開始建立預存程序內容 9                 begin10             //if 判斷,注意括弧內為一個等號。。還有then11                 if(limit_str = ‘‘) then12                     set @limit = ‘‘;13                 else14                     set @limit = concat(‘ ‘,limit_str);15             //end if 後面要加分好16                 end if;17                 if(where_str = ‘‘) then18                     set @where = ‘‘;19                 else 20                     set @where = concat(‘ ‘,where_str,‘ ‘);21                 end if;22             //拼接sql語句23                 set @sql_str     = concat(‘select *,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((‘,lat_put,‘*PI()/180-latitude*PI()/180)/2),2)+COS(‘,lat_put,‘*PI()/180)*COS(latitude*PI()/180)*POW(SIN((‘,lng_put,‘*PI()/180-longitude*PI()/180)/2),2)))*1000) AS juli FROM gd_bbs_article ‘,@where,‘ORDER BY juli asc‘,@limit);24             //準備sql語句25                 prepare temp from @sql_str;26             //執行sql語句27                 execute temp;28             //結束29                 end%%30             //還原31             >> delimiter ;32             //刪除此預存程序33             >> drop procedure get_distance%%34 35             //查看36             show procedure like ‘%name%‘

調用過程

1 $sql         = ‘call get_distance(112.075387,24.053732,"","limit 0,10")‘;2 $res         = mysql_query($sql);3 //var_dump($res . mysql_error());4 while(($row = mysql_fetch_assoc($res)) !== false) {5     print_r($row);6 }

 

寫yi一個mysql預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.