首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql函数返回数据列表

问mysql函数返回数据列表
EN

Stack Overflow用户
提问于 2010-07-06 21:36:06
回答 5查看 9.1K关注 0票数 3

我想写一个以整数为输入的mysql函数,该函数执行select语句"select id from table_name“,然后我希望该函数返回select语句的结果。

然后

在查询中,我想做一些类似的事情:

select id,name from table_name where id in (call function here that returns a list of ids)。

这在mysql中有效吗??

提前感谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-06 21:41:19

不,您不能在MySQL中执行此操作。

不能在子查询中使用返回结果集的MySQL过程。

如果您的函数只是一些SELECT语句,那么您可以这样做:

代码语言:javascript
复制
SELECT  id, name
FROM    mytable1
WHERE   id IN
        (
        SELECT  id
        FROM    mytable2
        WHERE   value = @myinteger
        UNION ALL
        SELECT  id
        FROM    mytable2
        WHERE   value = @myinteger
        UNION ALL
        …
        )

或者,哪个更有效率,

代码语言:javascript
复制
SELECT  id, name
FROM    mytable1 t1
WHERE   EXISTS
        (
        SELECT  NULL
        FROM    mytable2 t2
        WHERE   t2.id = t1.id
                AND t2.value = @myinteger
        UNION ALL
        SELECT  NULL
        FROM    mytable3 t2
        WHERE   t3.id = t1.id
                AND t3.value = @myinteger
        UNION ALL
        …
        )
票数 1
EN

Stack Overflow用户

发布于 2010-07-06 21:38:46

是的,您可以在MySql中使用子查询

像下面这样的东西

代码语言:javascript
复制
select id,name from table_name1 
               where id in (select DISTINCT(table_name1_id) from table_name2)
票数 1
EN

Stack Overflow用户

发布于 2010-07-06 21:38:47

你不需要一个函数,你可以使用子查询。

例如。

代码语言:javascript
复制
select id,name from table_name where id in (select someIds from othertable)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3186645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档