写yi一个mysql存储过程

 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 }
时间: 2024-10-22 12:41:32

写yi一个mysql存储过程的相关文章

MySQL存储过程详解 mysql 存储过程

MySQL存储过程详解  mysql 存储过程 (2010-12-13 10:59:38) 转载▼ 标签: it 分类: mysql mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保

MySQL存储过程详解 mysql 存储过程(转:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html)

转:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和

mysql存储过程详解

1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以

Mysql存储过程(转)

一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b",返回这两个参数的和. drop procedure if exists pr_add; -- 计算两个数之和 create procedure pr_add(   a int,   b int)begin   declare c int; if a is null then      set a = 0; 

mysql存储过程详细教程

记录mysql存储过程中的关键语法:DELIMITER //  声明语句结束符,用于区分;CREATE PROCEDURE demo_in_parameter(IN p_in int)  声明存储过程BEGIN .... END  存储过程开始和结束符号SET @p_in=1   变量赋值 DECLARE l_int int unsigned default 4000000;  变量定义 什么是mysql存储例程? 存储例程是存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称来

mysql存储过程之游标遍历数据表

原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹. 1 BEGIN 2 DECLARE Done INT DEFAULT 0; 3 4 DECLARE CurrentLingQi INT; 5 6 DECLARE ShizuName VARCHAR(30); 7 /* 声明游标 */ 8 DECLARE rs CURSOR FOR SELECT

mysql存储过程入门与提高(第一篇)

以前在网上看到歪国人专门写了本mysql存储过程,感觉很强大啊.刚好最近新项目上优化要用到存储过程,我就把之前的学习笔记整理了一下.最近太忙啊!!! MySQL stored programs包括存储过程,函数,触发器. 先来看一下官方的定义. Stored procedures 存储过程Stored procedures are the most common type of stored program. A stored proce-dure is a generic program un

MySQL存储过程详解(转)

1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以

mysql存储过程详解[转]

1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以