MySQL存储过程无法获取整个表

3

首先,我尝试了这个(MySQL/phpmyadmin)。

CREATE DEFINER=`root`@`localhost` PROCEDURE `tempcheck`() NO SQL 

BEGIN 
SET @query_string = 'SELECT * FROM properties'; 
PREPARE query_statement FROM @query_string; 
EXECUTE query_statement; 
DEALLOCATE PREPARE query_statement; 

END

这只是获取表格“properties”的第一条记录。该表格有多个值。当我sqlquery 'select * from properties;'时,它会返回整个表格。

我甚至尝试了这个简单的方法

BEGIN

SELECT * FROM properties';

END

尝试了许多stackoverflow的问题和答案,他们都建议我创建一个临时表。即使我这样做了,当它一开始没有返回整个表时,它如何返回整个表。MySQL存储过程是否可以返回整个表?如果可以,那么如何操作呢?


从proc中删除DEALLOCATE语句。您无需手动释放,因为一旦会话关闭,它将自动释放。 - Romil Kumar Jain
你想做什么?是要将多行结果集返回到你的应用程序吗?如果是这样,你的应用程序将不得不逐行从mySQL服务器读取结果集。如果由于某种原因你必须使用存储过程而不仅仅是SELECT来完成这个任务,那么请通过让SELECT在你的应用程序中正常工作来调试你的应用程序,然后再切换到使用简单的存储过程。 - O. Jones
@Nav,你遇到什么问题了吗?你需要将整个表格记录存储到变量中吗? - Prathap
@OllieJones 是的,我正在尝试返回多条记录。换句话说,我希望这个过程能够完全执行那个简单的SQL语句所做的事情。我在phpmyadmin中尝试运行了这个过程,它确实从“属性”表中返回了记录,但它只返回了一条记录,而我想要整个表格。我认为如果phpmyadmin可以正确返回这个结果,那么我就可以让我的PHP应用程序做同样的事情。你是说如果我从PHP应用程序调用这个过程,它会返回整个表格吗? - Nav
我需要多条记录!!!请有人帮帮我! - Nav
显示剩余2条评论
1个回答

1
大家好,感谢你们的帮助。我的一位同事帮我解决了这个问题。显然这是phpmyadmin中的一个bug。phpmyadmin无法返回多条记录。

没错。phpmyadmin不知道,也没有设置去猜测,当你调用一个存储过程时,你想要一个多行结果集。 - O. Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接