如何在SQL中使用集合?
如果您不清楚集合是什么,它允许用户插入值,请检查列表中是否有值,并找到一个交集(如果两个集合中存在值)。此外,一个集合只能保存一次值 如何在SQL中使用集合?我正在使用sqlite,但将转到postgresql。对我来说,最明显的选择是拥有一个包含如何在SQL中使用集合?,sql,postgresql,sqlite,Sql,Postgresql,Sqlite,如果您不清楚集合是什么,它允许用户插入值,请检查列表中是否有值,并找到一个交集(如果两个集合中存在值)。此外,一个集合只能保存一次值 如何在SQL中使用集合?我正在使用sqlite,但将转到postgresql。对我来说,最明显的选择是拥有一个包含SetID,SetValue的集合表,这两个值是主键。然而,我有一种感觉,这不会是有效的,因为SetID会重复很多次。另一个选项是有一个tableintsetid,blobsetarray,但我需要手工实现set逻辑 在SQL中执行集合的最佳方法是什么
SetID,SetValue
的集合表,这两个值是主键。然而,我有一种感觉,这不会是有效的,因为SetID会重复很多次。另一个选项是有一个tableintsetid,blobsetarray
,但我需要手工实现set逻辑
在SQL中执行集合的最佳方法是什么?对于sqlite或postgresql?有几个选项:
选择distinct
。几个选项:
如果要选择作为集合,请使用
select distinct
。在我看来,具有两列SetID
和SetValue
的表的第一个选项是最好的。多次重复相同ID的开销是最小的,总的来说,通常比拆分blob的成本要低得多。主键或至少一个唯一的索引将确保一个值只能在一个集合中存在一次,然后可以使用EXISTS
和INTERSECT/EXCEPT
运算符来识别集合中的重叠和差异,然后要获得精确匹配,请参见@GarethD:这就是我的想法。你的评论应该是一个答案。我不知道关于除操作员的事,这是件好事。我不相信这个评论有足够的实质内容来回答这个问题。我没有证明一种方法优于另一种方法的参考资料或测试,仅基于我的意见的回答可能会阻止其他地方提供更好的、确凿的答案。在我看来,第一个选项是两列SetID
和SetValue
的表格。多次重复相同ID的开销是最小的,总的来说,通常比拆分blob的成本要低得多。主键或至少一个唯一的索引将确保一个值只能在一个集合中存在一次,然后可以使用EXISTS
和INTERSECT/EXCEPT
运算符来识别集合中的重叠和差异,然后要获得精确匹配,请参见@GarethD:这就是我的想法。你的评论应该是一个答案。我不知道关于除操作员的事,这是件好事。我不相信这个评论有足够的实质内容来回答这个问题。我没有证明一种方法优于另一种方法的参考资料或测试,仅凭我的观点,我的回答可能会阻止其他地方给出更好的、确凿的答案。