2016-11-22 9 views
0

MySql FIND_IN_SET検索では、1つの文字列のように最初の引数をとります。FIND_IN_SET MySql関数で検索する項目が少ない

しかし、セットで探している変数がほとんどない場合はどうなりますか? search => array('1','2','3')

ため

SET field {set_field} can be => 1,2 OR 1,3 OR 1,2,3 OR 2,3 

引数と私はこのようにしたいの書き込み条件をいけない:

FIND_IN_SET('1',{set_field}) OR FIND_IN_SET('2',{set_field}) OR FIND_IN_SET('3',{set_field}) 

は、他のオプションはありますか?

+0

試し本当の利点であることを確認してください... –

+0

私は他の選択肢を見つけようとしています、よりコンパクトに、原因、私は前に書いたように、それが機能していないつもりはありません検索のために40のagrsがあるなら、私はFIND_IN_SET条件の40倍を持っています!たぶん、これを行うための他のオプションや関数が存在するかもしれません – scion4581

答えて

0

一時テーブルに値をロードし、FIND_IN_SETに基づいてJOINを実行できます。

でもない、それは単一引用符を削除

CREATE TEMPORARY TABLE fred 
(
    ID INT, 
    PRIMARY KEY (`ID`) 
); 

INSERT INTO fred VALUES (1),(2),(3); 

SELECT DISTINCT a.* 
FROM some_table a 
INNER JOIN fred b 
ON FIND_IN_SET(b.ID, a.set_field); 
関連する問題