mysql 存储过程调用

标签 mysql stored-procedures

我有一个简单的 mysql 查询

select u.user_id, username, company_details_id, company_name, ut.user_type_id, role_type, street1, city_town, phone, email, website, create_date, update_date, isActive from users u 
join company_details cd on u.user_id = cd. user_id
join user_type ut on u.user_type_id=ut.user_type_id order by company_name asc;

我正在尝试引用用户名或公司名称等将列表按升序降序排序。我想在order by<之后传递动态值 在上面的查询中。当我通过硬编码 order by 之后的值来执行时,它工作正常,但是当我在 存储过程 中尝试上面相同的查询时,如下所示

DELIMITER $$
CREATE DEFINER=root@localhost PROCEDURE reportAllClients(selectName varchar(100))
BEGIN
select u.user_id, username, company_details_id, company_name, ut.user_type_id, role_type, street1, city_town, phone, email, website, create_date, update_date, isActive from users u 
join company_details cd on u.user_id = cd. user_id
join user_type ut on u.user_type_id=ut.user_type_id order by selectName;
END$$
DELIMITER ;

我将存储过程称为 call reportAllClients('company_name desc'); 但我没有得到预期的结果。无论我传递给过程的参数是什么,它总是显示相同的结果。有没有办法以 ascdesc 顺序查看包含用户名、公司名称等的列表。

最佳答案

CREATE DEFINER=root@localhost PROCEDURE reportAllClients(selectName varchar(100))

应该是

CREATE DEFINER=root@localhost PROCEDURE reportAllClients(IN selectName varchar(100))

关于mysql 存储过程调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24249622/

相关文章:

php - 将 json 字符串发送到 php

php - 从动态生成的输入字段 PHP、MySQL、jQuery 更新多行

mysql - MySQL 是否避免在膨胀查询中通过网络传输相同的数据片段?

c# - 调用存储过程时需要Connection.Open()吗?

mysql - 在存储过程中的另一个 SELECT 中使用已返回的 SELECT

php - 在 PHP 中访问 MySQL 存储过程的返回值

c# - 如何为 SQL CLR 存储过程提供 sql_variant 参数?

sql - MySQL 5 上 MONTHNAME() 的问题

php - 从其中包含内爆函数的查询获取输出

递归调用自身的mysql存储过程