[英]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_status
、 write_setting_status
、 write_cmt_setting_status
和like_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 所建議的那樣,這是您應該使用的查詢。 根據您的表結構定義數據類型int或varchar
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.