从存储过程 Mysql (Laravel + SPA) 获取多表输出

Posted

技术标签:

【中文标题】从存储过程 Mysql (Laravel + SPA) 获取多表输出【英文标题】:Get multiple table output from Stored Procedure Mysql (Laravel + SPA) 【发布时间】:2021-10-04 23:31:18 【问题描述】:

我有一个存储过程,它返回三个表(3 个已选择) 在Laravel中调用过程

Public function getTables(Request $request)
  $output =DB::select('call all_result(?,?)', array($request->in1,$request->in2));
  return response()->json($output);

结果:只返回第一个表,我需要 3 个表一起

更新:

存储过程

DELIMITER $$
create procedure all_result()
BEGIN

select * from table1;
select * from table2;
select * from table3;

END
$$

注意:

我使用 SPA(单页应用程序)Vue Js 前端,我使用 Laravel 后端

VueJsLaravel Via Axios

调用 API

我的数据库是 MYSQL

【问题讨论】:

【参考方案1】:

像这样在存储过程中编写代码:

DELIMITER $$
CREATE PRECEDURE all_result()
BEGIN

SELECT * FROM table1;
SELECT * FROM table2;
SELECT * FROM table2;

END
$$

【讨论】:

此代码与我在问题中输入的代码接近

以上是关于从存储过程 Mysql (Laravel + SPA) 获取多表输出的主要内容,如果未能解决你的问题,请参考以下文章

Mysql - 如何从存储过程中退出/退出

将数组从 php 传递到 MySQL 存储过程的最佳方法是啥?

Laravel 5.1 如何使用迁移创建 MySQL 存储过程

mysql存储过程

将 schema 和 SP 从 informix 迁移到 mysql

Laravel 5 - 找不到 MySQL 存储过程