首页 > 解决方案 > 将特定列存储和检索到包含存储过程中单行的结果集的变量中

问题描述

我需要根据存储在不同列上的值将特定列的值存储到单独的变量中。

DELIMITER $$
USE `someDB`$$
DROP PROCEDURE IF EXISTS `GetFeedSetting`$$

CREATE PROCEDURE `GetFeedSetting` (IN `feed_setting_user_id` BIGINT) READS SQL DATA DETERMINISTIC SQL SECURITY INVOKER
BEGIN
   DECLARE noOfHits INT (11);
   SELECT
    `read_setting_status`,
    `write_setting_status`,
    `write_cmt_setting_status`,
    `like_setting_status`
  FROM
    `feed_item_setting`
  WHERE `user_id` = feed_setting_user_id;
 END $$

DELIMITER ;

从上面的代码片段中,检索到的结果将始终位于结果集中的一行中。我应该如何将变量分配给下面这些 列read_setting_status、、、write_setting_statuswrite_cmt_setting_statuslike_setting_status

为了以数组的形式存储值并通过索引访问它。我应该如何为单独的变量分配值,以便根据分配给变量的列名执行一些进一步的操作

标签: mysqlstored-procedures

解决方案


您可以像这样存储选择数据

  DECLARE myread_setting_status DOUBLE;
  SELECT `read_setting_status`, INTO myread_setting_status FROM
    `feed_item_setting`WHERE `user_id` = feed_setting_user_id;;

当然我不知道 read_setting_status 到底是哪种类型,但你应该明白


推荐阅读