我想编写一个返回多行数据的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行,如何?
从MySQL参考:
23.4.6:MySQL 5.0存储例程可以返回结果集吗?
存储过程可以,但存储的功能不能.如果在存储过程中执行普通SELECT,则结果集将直接返回给客户端.您需要使用MySQL 4.1(或更高版本)客户端 - 服务器协议才能工作.这意味着 - 例如 - 在PHP中,您需要使用mysqli扩展而不是旧的mysql扩展.