码迷,mamicode.com
首页 > 数据库 > 详细

写yi一个mysql存储过程

时间:2015-01-19 18:53:29      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

 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                 begin
10             //if 判断,注意括号内为一个等号。。还有then
11                 if(limit_str = ‘‘) then
12                     set @limit = ‘‘;
13                 else
14                     set @limit = concat(‘ ‘,limit_str);
15             //end if 后面要加分好
16                 end if;
17                 if(where_str = ‘‘) then
18                     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存储过程

标签:

原文地址:http://www.cnblogs.com/lxdd/p/4234379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!