Sql IN analog in boost::multi_index

Sql IN analog in boost::multi_index

本文关键字:multi index boost IN analog in Sql      更新时间:2023-10-16

我使用boost::multi_index并像这样检索数据:

sample_set::index<my_indx>::type::iterator s, end;
boost::tie(s,end) = samples.get<my_indx>().equal_range(
    boost::make_tuple( "Dress", "Red" ));

此代码检索所有红色连衣裙。有没有办法检索红色和黄色的连衣裙与一个查询?如SQL:

"Select * from clothes where type = 'Dress' and color in ('Red', 'Yellow')"

没有办法通过一个操作来完成:Boost。MultiIndex查找成员函数总是返回范围(或者迭代器,可以认为是单元素范围),但是您所描述的这种查询的结果不是一个范围——它的元素不一定是相邻的。因此,您必须执行两个查询,一个用于("Dress","Red"),另一个用于("Dress","Yellow"),然后依次遍历两个结果范围。