0

MySQL にストアド関数がありますget_parents_by_id()

しかし、WHERE条件で使用しようとするとエラーが発生します。

例えば:

SELECT id, parents, level 
FROM categories
WHERE parents IN get_parents_by_id(@id);

正しく動作せず、サンプルは次のとおりです。

WHERE parents IN (SELECT get_parents_by_id(@id)); 

同様に機能しません。

人々を助けてください、MySQLに関する本が見つかりません...

4

2 に答える 2

0

試してくださいfind_in_set()

SELECT id, parents, level 
FROM categories
WHERE find_in_set(parents, get_parents_by_id(@id));

注: これには、カンマ区切りの文字列 (varchar) を返すために get_parents_by_id() が必要です。

注 2: ストアド関数は通常、結果セットではなく個々の値を返します。

コメントの形式によると:

WHERE find_in_set(parents, 
    REPLACE(REPLACE(get_parents_by_id(@id), ')', ''), '(', ''));
于 2013-07-01T20:30:43.897 に答える