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})
还有其他选择吗?
答案 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);