MySQL 带INOUT参数执行搜索提示的存储过程
2013-08-13 11:03
671 查看
DELIMITER $$ USE `b10k`$$ DROP PROCEDURE IF EXISTS `sp_suggest`$$ CREATE DEFINER=`luth`@`%` PROCEDURE `sp_suggest`( IN query_column VARCHAR(100), /*被检索的字段名*/ IN keyword VARCHAR(100), /*检索的关键字*/ IN table_name VARCHAR(100), /*被检索的表名*/ INOUT result_count INT /*要取出匹配记录的数量*/ ) COMMENT '执行关键字搜索' BEGIN /*定义变量*/ DECLARE m_begin_row INT DEFAULT 0; DECLARE m_where_string CHAR(128); DECLARE m_order_string CHAR(128); DECLARE m_limit_string CHAR(64); /*构造语句*/ SET m_begin_row = result_count; SET m_where_string = CONCAT(' WHERE ', query_column, ' LIKE \'', keyword, '%\' '); SET m_order_string = CONCAT(' ORDER BY ', query_column); SET m_limit_string = CONCAT(' LIMIT ', result_count); SET @COUNT_STRING = CONCAT('SELECT DISTINCT COUNT(*) INTO @ROWS_TOTAL FROM ', table_name, ' ', m_where_string, ' ', m_order_string, ' ', m_limit_string); SET @MAIN_STRING = CONCAT('SELECT DISTINCT ', query_column, ' FROM ', table_name, ' ', m_where_string, ' ', m_order_string, ' ', m_limit_string); /*预处理*/ PREPARE count_stmt FROM @COUNT_STRING; EXECUTE count_stmt; DEALLOCATE PREPARE count_stmt; SET result_count = @ROWS_TOTAL; PREPARE main_stmt FROM @MAIN_STRING; EXECUTE main_stmt; DEALLOCATE PREPARE main_stmt; END$$ DELIMITER ; /*调用*/ SET @aa=10; CALL sp_suggest('latin_name','A','species',@aa); SELECT @aa;
相关文章推荐
- mysql中的存储过程之无参数,in、out、inout参数的讲解
- 【mysql】mysql存储过程in、out、inout参数使用
- MySql(15)------mysql存储过程IN,OUT,INOUT参数模式使用详解
- MySQL 存储过程带in和out参数以及PHP,PB如何调用的小例子
- MySQL 存储过程参数用法 in, out, inout
- (转)MySQL 存储过程参数有三种类型:in、out、inout。它们各有什么作用和特点呢?
- MySQL 存储过程参数用法 in, out, inout
- MySQL 存储过程参数有三种类型:in、out、inout。它们各有什么作用和特点呢?
- MySQL:MySQL 存储过程参数用法 in, out, inout
- 详解MySQL存储过程参数有三种类型(in、out、inout)
- mysql存储过程中in、out、inout参数使用实际案例
- 在MySQL中创建带有IN和OUT参数的存储过程的方法
- mysql存储过程中in、out、inout参数使用
- MySQL 存储过程参数用法 in, out, inout
- 详解MySQL存储过程参数有三种类型(in、out、inout)
- mysql 存储过程参数 in out inout 特点
- MySQL 存储过程带in和out参数以及PHP,PB如何调用的小例子
- MySQL 存储过程传参之in, out, inout 参数用法
- MySQL存储过程传参之in,out,inout参数用法
- MySQL 存储过程参数用法 in, out, inout