MySQL是一个高性能的开源DBMS,如果要构建基于大量查询、且对事务功能要求一般的应用来说,MySQL无疑是最佳备选方案之一。
最近有个嵌入式方面的通讯项目,其中就用了MySQL 5,在编写存储过程中遇到一个问题,那就是如何在存储过程中构建SQL语句中引入参数。
各位时间也有限,我长话短说。例如我们要构建一个简单的查询,表名是需要根据参数动态变化,直接写是肯定不行的,这里就不多描述了。那应该如何做了,我也直接上段代码,各位一看便明白。
# 该存储过程定义了几个传入参数,前缀都是para_
# 该存储过程的此部分功能是,查询根据传入参数动态生成的tbl_name表名的表中,有多少条和传入参数完# 全吻合的记录
SET tbl_name = CONCAT("result_", para_user);
SET @STMT := CONCAT("SELECT COUNT(*) INTO @num_count FROM ", tbl_name
," WHERE rng = '", para_rng
,"' AND north_latitude = ", para_north
," AND bck_datetime = '", para_datetime
,"' AND east_longitude = ", para_east, ";");
PREPARE STMT FROM @STMT;
EXECUTE STMT;
最近有个嵌入式方面的通讯项目,其中就用了MySQL 5,在编写存储过程中遇到一个问题,那就是如何在存储过程中构建SQL语句中引入参数。
各位时间也有限,我长话短说。例如我们要构建一个简单的查询,表名是需要根据参数动态变化,直接写是肯定不行的,这里就不多描述了。那应该如何做了,我也直接上段代码,各位一看便明白。
# 该存储过程定义了几个传入参数,前缀都是para_
# 该存储过程的此部分功能是,查询根据传入参数动态生成的tbl_name表名的表中,有多少条和传入参数完# 全吻合的记录
SET tbl_name = CONCAT("result_", para_user);
SET @STMT := CONCAT("SELECT COUNT(*) INTO @num_count FROM ", tbl_name
," WHERE rng = '", para_rng
,"' AND north_latitude = ", para_north
," AND bck_datetime = '", para_datetime
,"' AND east_longitude = ", para_east, ";");
PREPARE STMT FROM @STMT;
EXECUTE STMT;