使用FIND_IN_SET MySql函数搜索时很少有项目

时间:2016-11-22 12:07:57

标签: mysql

MySql FIND_IN_SET搜索第一个参数就像一个字符串。

但如果我在集合中寻找变量很少怎么办?

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

search => array('1','2','3')

的参数

我不想写这样的条件:

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

还有其他选择吗?

1 个答案:

答案 0 :(得分: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);