0

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

4

0 に答える 0