我想写一个以整数为输入的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中有效吗??
提前感谢
发布于 2010-07-06 21:41:19
不,您不能在MySQL中执行此操作。
不能在子查询中使用返回结果集的MySQL过程。
如果您的函数只是一些SELECT语句,那么您可以这样做:
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
…
)或者,哪个更有效率,
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
…
)发布于 2010-07-06 21:38:46
是的,您可以在MySql中使用子查询
像下面这样的东西
select id,name from table_name1
where id in (select DISTINCT(table_name1_id) from table_name2)发布于 2010-07-06 21:38:47
你不需要一个函数,你可以使用子查询。
例如。
select id,name from table_name where id in (select someIds from othertable)https://stackoverflow.com/questions/3186645
复制相似问题