Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql存储过程调用_Mysql_Stored Procedures - Fatal编程技术网

mysql存储过程调用

mysql存储过程调用,mysql,stored-procedures,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 jo

我有一个简单的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
之后的值进行硬编码来执行时,它工作正常,但当我在
存储过程中尝试上述查询时,就像这样

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 ;
我将存储过程称为
callreportallclients('company_name desc')但我没有得到预期的结果。无论我传递到过程中的参数是什么,它总是显示相同的结果。是否有办法按用户名、公司名称等顺序查看
asc
desc
中的列表

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

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

我试着投进去,但没有成功。除上述问题外,还有其他问题吗。我无法理解。我希望您正在向过程传递列名,是吗?是的,我正在传递列名加上顺序asc或desc。请检查上面我如何调用过程。我做错了吗?谢谢。哦。。您必须传递2个参数。desc应单独通过。现在它只接受列名,而忽略desc,因为它们被一个空格隔开。嘿,我认为不可能实现你正在做的事情。。让其他人评论一下(