MySQL存储过程N参数?

时间:2013-09-23 16:07:25

标签: mysql

我有3张这样的表:

Table 1              Table 3                        Table 2
============        =======================        ==============
 Name -> ID         Table 1 ID -> Table 2 ID         Name -> ID

"Name1" -> 1             1  ->    1                "object1" -> 1
"Name2" -> 2             1  ->    2                "object2" -> 2
"Name3" -> 3             1  ->    3                "object3" -> 3
"Name4" -> 4             2  ->    2                "object4" -> 4
"Name5" -> 5             3  ->    4                "object5" -> 5

我需要编写一个存储过程来了解表1中的元素是否包含表2中给定的ID。

例如,查找名称包含1,2和3.结果将是ID 1 - >姓名1。

要查找的项目可以是N个元素。

谁可以帮我这个?

我试过这样的事情:

SET @myArrayOfValue = '2,5,2,23,6,';

WHILE (LOCATE(',', @myArrayOfValue) > 0)
DO
SET @value = ELT(1, @myArrayOfValue);
    SET @STR = SUBSTRING(@myArrayOfValue, 1, LOCATE(',',@myArrayOfValue)-1);
    SET @myArrayOfValue = SUBSTRING(@myArrayOfValue, LOCATE(',', @myArrayOfValue) + 1);

    INSERT INTO `TemporaryTable` VALUES(@STR);
END WHILE;

我想创建一个临时表并比较这些值在表上进行搜索,但我在LOCATE()上遇到错误。另外我认为每次创建临时表都是错误的。

0 个答案:

没有答案