我有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()上遇到错误。另外我认为每次创建临时表都是错误的。