簡體   English   中英

在存儲過程中將特定列存儲和檢索到包含單行的結果集的變量中

[英]Storing & Retrieving specific columns into a variable of a result set containing single row in a stored procedure

我需要根據存儲在不同列上的值將特定列的值存儲到一個單獨的變量中。

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

為了以數組的形式存儲值並通過索引訪問它。 我應該如何將值分配給單獨的變量,以便根據分配給變量的列名執行一些進一步的操作

您可以像這樣存儲 Select 數據

  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 到底是哪種類型,但你應該知道

正如 nbk 所建議的那樣,這是您應該使用的查詢。 根據您的表結構定義數據類型intvarchar

DECLARE v_read_setting_status, v_write_setting_status, v_write_cmt_setting_status, v_like_setting_status int or varchar;   #check you structure

SELECT 
    `read_setting_status`,
    `write_setting_status`,
    `write_cmt_setting_status`,
    `like_setting_status`
INTO 
     v_read_setting_status, 
     v_write_setting_status, 
     v_write_cmt_setting_status,
     v_like_setting_status 
FROM 
     `feed_item_setting`
WHERE
    `user_id` = feed_setting_user_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM