WHERE 句に変数を指定して SELECT ステートメント (Windows 7 のデータベース MySQL バージョン 5.5.27) を実行しています。6 つのレコードを返すはずですが、そうではありません。以下は簡単なテストコードです。
-- Test-I
SET @group_saids := (SELECT REPLACE(
'''ClicPlan - España|ClicPlan - Francia|ClicPlan - UK|ClicPlan - Belgique|ClicPlan - Argentina|Clicplan - Turkey'''
,'|',"','") as aids_list from dual);
select @group_saids from dual;
select sd.aid
FROM said_aid sd
where sd.said in (@group_saids);
-- レコードが選択されていません。
-- テスト-II
select sd.aid
FROM said_aid sd
where sd.said in ('ClicPlan - España','ClicPlan - Francia','ClicPlan - UK',
'ClicPlan - Belgique','ClicPlan - Argentina',
'Clicplan - Turkey');
aid
----
3045
3253
3254
3260
3268
3270
上記の Test-I のコードでは、select from table said_aid はレコードを返しませんが、6 つのレコードが出力されるはずです。IN 値がハードコードされた Test-II の同じクエリは、6 つのレコード出力を返します。実行中にエラーはありません。