在同一列上使用多个WHERe条件进行选择

在同一列上使用多个WHERe条件进行选择,第1张

在同一列上使用多个WHERe条件进行选择

您可以使用

GROUP BY
HAVINg COUNT(*) = _

SELECt contact_idFROM your_tableWHERe flag IN ('Volunteer', 'Uploaded', ...)GROUP BY contact_idHAVINg COUNT(*) = 2 -- // must match number in the WHERe flag IN (...) list

(假设

contact_id, flag
是唯一的)。

或使用联接:

SELECt T1.contact_idFROM your_table T1JOIN your_table T2 ON T1.contact_id = T2.contact_id AND T2.flag = 'Uploaded'-- // more joins if necessaryWHERe T1.flag = 'Volunteer'

如果标志列表很长并且有很多匹配项,则第一个可能更快。如果标志列表很短且匹配项很少,那么您可能会发现第二个更快。如果性能是一个问题,请尝试对您的数据进行测试以查看哪种效果最佳。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4961910.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存