其中子句匹配的结果来自函数

时间:2013-06-27 16:40:11

标签: mysql sql

我有一个例程,它会在特定邮政编码的许多里程内返回邮政编码列表。我可以调用例程并获取结果列表:

CALL Location.GetNearByZipCodes(28078,5);

结果集:

  

28031,28070,28078,28205

我想做一个查询,它选择所有带有例程输出的记录作为where子句的一部分:

select * from Location where zipcode in (Location.GetNearByZipCodes(28078,5));

然而,这不起作用。是否可以将函数的结果用作where子句的一部分?如果是这样,那么正确的语法是什么?

上述选择查询失败,显示:

  

错误代码1305:Location.GetNearByZipCodes不存在。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

试试这个:

"select * from Location where zipcode in (".Location.GetNearByZipCodes(28078,5).");"

另外,请确保此函数返回带有由逗号,分隔的zipcodes的字符串。

您还可以在查询之前调用Location.GetNearByZipCodes()并将返回的值存储在变量中,然后以您习惯的方式使用查询中的变量。