GROUP_CONCAT加FIND_IN_SET实现not in的效果

GROUP_CONCAT查询的结果为1,2,3,4

而not in(1,2,3,4) 里也是这个类型的值,

所以我这样写了

and g.id not in ( x.class_detail_id )

其中x.class_detail_id是GROUP_CONCAT的结果(1,2,3,4)

但却行不通,因为GROUP_CONCAT的结果是一整个字符串,而不是多个值,所以不能直接拿GROUP_CONCAT的结果来用

最后得出解决方案: and  !FIND_IN_SET(g.id,x.class_detail_id)

FIND_IN_SET是判断前面的g.id在后面的x.class_detail_id是否存在,最后在前面加上!就可以达到not in的效果了

你可能感兴趣的:(GROUP_CONCAT加FIND_IN_SET实现not in的效果)