如何在where子句中调用MySQL过程?
在示例demo
中,表名get_name()
是一个函数,1
是一个参数(id)。
select * from demo where name = (select name from call get_name(1))
答案 0 :(得分:2)
您应该使用函数而不是过程。过程返回(一个或多个)结果集(表),而函数返回单个值。
在where子句中使用函数之前,您应该三思而后行,如果它们包含数据库中的select子句,因为它可能导致查询优化器无法优化查询路径导致序列化查询和性能不佳的情况。如果数据量很小,或者您可能遇到性能损失,那么这将有效。