mysql过程存储参数_MySQL(存储)过程 – 参数和查询

我试图用参数创建一个简单的过程.

CALL new_procedure('mode', 'ASC');

第一个输入是列,第二个输入是排序方向

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`(IN in_order_by_column varchar(20), in_order_by_direction char(4))

BEGIN

DECLARE order_by varchar(30);

SET @order_by = CONCAT('`', in_order_by_column, '` ', in_order_by_direction);

/*

SELECT * FROM `common_tags` ORDER BY @order_by LIMIT 5;

*/

SELECT @order_by as 'c';

END

在上面的例子中我只输出了2个参数,这样我就可以看到发生了什么.

结果:

"c"

`mode` ASC

.

当我使用它的预期代码运行该程序时,如下所示.

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`(IN in_order_by_column varchar(20), in_order_by_direction char(4))

BEGIN

DECLARE order_by varchar(30);

SET @order_by = CONCAT('`', in_order_by_column, '` ', in_order_by_direction);

SELECT * FROM `common_tags` ORDER BY @order_by LIMIT 5;

END

结果

tags_id data mode parent_id position

1 Wood 2 13 6

2 Trippy 0 0 0

4 Artists 1 0 1

6 "Newest Additions" 1 0 11

12 "Natural Elements" 2 5 8

如您所见,结果未按模式排序.

任何帮助表示赞赏.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值