php - mysql in 子句使用过程而不是子查询

标签 php mysql stored-procedures

我创建了一个返回单列 officeid 的过程

call officetree(15);

我需要通过officetree程序获取officeid返回的员工列表

select * from master_employee where officeid in ( here i want put my officeids return from procedure)

是否可以实现此目的,如果可以,其语法是什么。

程序内部

Below ofcid is parameter of procedure

select  `ofc_id`
 from (select * from master_office
     order by `ofc_parent_id`, `ofc_id`) master_office,
    (select @pv := ofcid) office
 where (find_in_set(`ofc_parent_id`, @pv) > 0 
and @pv := concat(@pv, ',', `ofc_id`)) or ofc_id=ofcid

最佳答案

不,据我所知,您不能在 MySQL 中使用 SP 作为子查询。

引用号:Using a stored procedure as subquery

引用号:https://forums.mysql.com/read.php?10,556522,556538#msg-556538

是否可以在 MySQL 5.5 子查询中调用存储过程。 不。

建议,尽可能少地使用存储过程(我十年的经验告诉我)

关于php - mysql in 子句使用过程而不是子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48127050/

相关文章:

php - 通过 PHP 调用页面加载的随机记录,通过 AJAX 动态显示结果

java - SQLSyntaxErrorException : data type exception due to `COALESCE` in HSQLDB

java - Apache DBUtils - 存储过程

php - 如何添加编号或项目符号?

php - 从 URL 中删除 fbclid(如果存在)

MySQL:计算多个状态的持续时间

php - 从最后插入的行获取最后插入的 id

tsql - 存储过程是否可以在 “IN”子句中​​使用动态参数?

php - 带有产品 ID 数组的 Paypal 返回

php - 为什么 php artisan 什么都不迁移?