如何从MYSQL函数中的List SQL查询执行SELECT?

时间:2014-10-21 13:08:54

标签: mysql sql

我在MYSQL中创建了一个函数,如下所示

CREATE FUNCTION `getTaskIds` ( typeIds TEXT) RETURNS TEXT
BEGIN
DECLARE output TEXT;
SELECT GROUP_CONCAT(id) INTO output FROM task WHERE task_id IN (typeIds );
RETURN output;
END

当我执行像SELECT getTaskIds( '1,2,3' )这样的函数时,它只给出了task_id = 1的结果。它不包含task_id 2和3。

我在功能中缺少什么? 你能帮助我吗?

提前完成。

2 个答案:

答案 0 :(得分:2)

由于传入字符串,因此无法使用IN。试试这个FIND_IN_SET()

 SELECT GROUP_CONCAT(id) INTO output FROM task WHERE FIND_IN_SET(task_id, typeIds) > 0;

答案 1 :(得分:0)

您需要传递函数中的所有参数。所以如果你想要3个参数:

CREATE FUNCTION `getTaskIds` ( typeId1 TEXT, typeId2 TEXT, typeId3 TEXT) RETURNS TEXT
BEGIN
DECLARE output TEXT;
// do what you want to do
RETURN output;
END