首页 > 解决方案 > 如何在存储过程中获取多个选择语句的输出

问题描述

我有以下存储过程。我希望具有单个记录集的输出将具有三列(meeting_room_id、slot_id、min_booking_length)作为存储过程中传递的参数。以下存储过程为我提供了第一个 select 语句的记录集。如何使用此存储过程获得预期的输出?

CREATE PROCEDURE validate_meeting_room_booking_slot(
    INOUT meeting_room_id BIGINT, 
    IN rent_space_start_time VARCHAR(255), 
    IN rent_space_end_time VARCHAR(255), 
    IN scheduled_date DATE, 
    OUT slot_id BIGINT, 
    OUT min_booking_length INT) 

    BEGIN 

      SELECT id INTO @slot_id
      FROM meeting_room_booked_slots 
      WHERE meeting_room_id = meeting_room_id 
        AND date = scheduled_date 
        AND ( 
             (start_time < rent_space_start_time 
                 AND end_time > rent_space_start_time) 
             OR 
             (start_time >rent_space_start_time 
                AND start_time < rent_space_start_time)) 
      LIMIT 1; 

      SELECT meeting_room_id, min_booking_length 
      FROM meeting_rooms
      WHERE id = meeting_room_id
        AND deleted_at IS NULL;

    END

标签: mysqlstored-procedures

解决方案


推荐阅读