MySQL函数返回超过1行

bob*_*obo 4 mysql function

我想编写一个返回多行数据的MySQL存储函数.这可能吗?它似乎被锁定在1行 - 甚至不能返回0行.

例如

DELIMITER //

create function go()

RETURNS int
deterministic
NO SQL

BEGIN

return null ; -- this doesn't return 0 rows!  it returns 1 row
-- return 0 ;

END //

DELIMITER ;

返回null从MySQL存储过程虽然不返回0行..它返回一行数据,其价值null在里面.

我可以从MySQL函数返回0或超过1行,如何?

Mva*_*est 7

从MySQL参考:

23.4.6:MySQL 5.0存储例程可以返回结果集吗?

存储过程可以,但存储的功能不能.如果在存储过程中执行普通SELECT,则结果集将直接返回给客户端.您需要使用MySQL 4.1(或更高版本)客户端 - 服务器协议才能工作.这意味着 - 例如 - 在PHP中,您需要使用mysqli扩展而不是旧的mysql扩展.