mysql - 将特定列存储和检索到包含存储过程中单行的结果集的变量中

标签 mysql stored-procedures

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

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_statuswrite_setting_statuswrite_cmt_setting_statuslike_setting_status

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

最佳答案

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

  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 到底是哪种类型,但你应该知道

关于mysql - 将特定列存储和检索到包含存储过程中单行的结果集的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57035139/

相关文章:

php - MySql,在重复更新时插入

mysql新手——加入

php - 为什么我的 UPDATE sql 查询不工作?不会更新表

mysql 查找最近用户评论

mysql - 为什么我的存储过程在插入时返回 "?"或在 UTF-8 的 select 语句中返回空

mysql - 如何在不重新启动服务器的情况下增加 max_allowed_pa​​cket 大小

sql - 使用 VB.Net 访问数据库存储过程后返回 True/False

c# - 显示 SQL Server 存储过程的单个返回值的函数

MySQL 5.7 存储过程语法错误,通过 phpadmin 和 Ubuntu 16.04

sql - T-SQL SELECT TOP 值和增量