[英]MySQL Stored Procedures Returning Select
這是一個非常基本的MySQL問題,但我找不到答案。 假設以下存儲過程體;
DECLARE Existing INT DEFAULT 0;
SELECT SQL_CALC_FOUND_ROWS name FROM users WHERE id = pid LIMIT 1;
SELECT FOUND_ROWS() INTO Existing;
Select Existing;
當我運行它時,它總是返回第一個SELECT結果。 但是我希望它返回最后一個(SELECT Existing)結果。 這種行為是否正常? 如果是這樣,我怎么能改變它,因為第一個選擇僅用於檢查,最后一個是我需要的。
(真正的邏輯與此不同,我在這里簡化了它)
你可以這樣做:
SELECT COALESCE(id/id, 0) AS Existing
FROM users
WHERE id = pid
LIMIT 1;
如果找到id
則返回1(id / id = 1)。 如果未找到id
則返回0(id / id為IS NULL,COALESCE將返回0)。
只是為了調試,如果兩個select sql返回列數相等,你可以使用union:
選擇1,'100'聯合選擇'3434',2;
您可以創建表變量,填充它,然后從中進行選擇
CREATE PROCEDURE my_proc () BEGIN
CREATE TEMPORARY TABLE TempTable (myid int, myfield varchar(100));
INSERT INTO TmpTable SELECT tblid, tblfield FROM Table1;
SELECT * FROM TEMPORARY;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.