我在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。
我在功能中缺少什么? 你能帮助我吗?
提前完成。
答案 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