如何在MySQL过程中将所有数据作为单个表获取?

时间:2016-12-30 07:43:37

标签: mysql procedure

问题是关于类似于WHATSAPP的应用程序(这里用户必须登录)。我的表格就像这样Table(仅用于测试目的)。 我想要这样的功能。 如果用户(让我们说Vivek登录应用程序而不是应用程序应该为每个用户显示所有之前的3条消息。他点击LOAD MORE应该显示另一条前3条消息。为此我在MySQL写了一个例子。我希望结果为单统一的table.result类似于图片Result of code如果您可以使用单个查询而不是 我只需要一张表来获得结果。 这基本上是聊天应用程序,我试图只收集登录聊天应用程序的该用户的3条消息/用户 这是我的代码。

DROP PROCEDURE IF EXISTS my_try;
DELIMITER //
CREATE PROCEDURE my_try()
BEGIN
DECLARE v_finished INTEGER DEFAULT 0;
DECLARE name23 varchar(25);
DECLARE count2 varchar(25);
DEClARE unique_name CURSOR FOR 
        SELECT distinct(t) FROM messages union SELECT distinct(frm) FROM messages;
DECLARE CONTINUE HANDLER 
        FOR NOT FOUND SET v_finished = 1; 
OPEN unique_name;
print:  LOOP
fetch unique_name into name23;
       SELECT id,message,frm,t FROM `messages` Where (frm='Vivek' AND t=name23) OR (frm=name23 AND t='Vivek') limit 0,3;
       SELECT count(*) into count2 from `messages` Where (frm='Vivek' AND t=name23) OR (frm=name23 AND t='Vivek') limit 0,3;
        IF v_finished = 1 THEN
            LEAVE print;
        END IF;
        END LOOP print;
close unique_name;
END //

0 个答案:

没有答案