私はこのような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() でエラーが発生しました。また、毎回一時テーブルを作成するのは間違っていると思います。