我可以在MYSQ ON语句中使用IN运算符吗

时间:2019-06-19 15:42:32

标签: php mysql

我有这个示例mysql语句

SELECT f.* FROM foo f
INNER JOIN bar b ON b.id IN(f.field_containing_values_separated_by_comma)
WHERE b.id IN (1,2,3)

(varchar)f.field_ contains_values_separated_by_comma的样本值 会是

'1,3,5'
'2,5,7'
'10,9'
'4,5'

我的预期结果是获取此f.field_ contains_values_separated_by_comma的foo记录

'1,3,5'
'2,5,7'

有什么主意我为什么不明白吗?或还有其他更好的方法可以做到这一点?即时通讯使用PHP作为后端

致谢

1 个答案:

答案 0 :(得分:0)

我相信您需要像这样使用FIND_IN_SET函数:

select distinct foo.* from foo cross join bar
WHERE bar.id IN(1,2) and FIND_IN_SET(foo.id, bar.field_containing_values_separated_by_comma)

文档here