0

如何在 where 子句中调用 MySQL 过程?

在示例demo中是一个表名get_name()是一个函数并且1是一个参数 (id) 。

select * from demo where name = (select name from call get_name(1))
4

1 回答 1

2

您应该使用函数而不是过程。过程返回(一个或多个)结果集(表),而函数返回单个值。

在 where 子句中使用函数之前应该三思而后行,如果它们包含来自数据库的 select 子句,因为它可能导致查询优化器无法优化查询路径导致序列化查询和性能不佳的情况。如果数据量很小,或者您对可能的性能损失感到满意,这将起作用。

于 2013-06-26T10:16:11.880 回答