MySQL之集合之间的查询

此为Spring Mapping层的策略
根据需求有以下查询情况:

  1. 判断一个元素是否在集合里面。
    可用 IN 判断,要求传入参数为集合,然后通过
 <foreach collection="List" item="i" index="index" open="(" close=")" separator=",">
 </foreach>

对集合进行整理。
另一个方法是使用 FIND_IN_SET 函数,这个要求传入参数为以逗号分隔的字符串。
如 FIND_IN_SET(em,emlist) , FIND_IN_SET(‘1’,’1,2,3’ ) 会回传元素所在索引。不存在返回0。

  1. 判断一个集合里面是否有另一个集合的元素。
    使用策略也可以传列表操作,使用上面foreach进行操作每一个元素是否在另一个。
    另外就是使用正则
    select concat('1,4', ',') regexp concat(replace('1,2,3',',',',|'),',') -- 1
    select concat('5,4', ',') regexp concat(replace('1,2,3',',',',|'),',') -- 0
    
    前面的存在返回1,不存在返回0;需要注意的是,这个方法如果存在前面的集合元素包含后面的集合元素时候,也会返回1,所以可以在前后加上不可能出现的字符来判断。

   转载规则


《MySQL之集合之间的查询》 xfx 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Minio文件服务安装(Linux和window) Minio文件服务安装(Linux和window)
项目地址https://github.com/minio/minio Linux安装下载安装介质 cd /usr/local wget https://dl.minio.io/server/minio/release/linux-amd64
2021-02-21
下一篇 
美团2021校招 技术综合-前端&移动端方向 试卷 美团2021校招 技术综合-前端&移动端方向 试卷
T1和T2很简单就不写了。2020.9.6 /** * 式子求值 * 对于序列a下标从1开始到n * 定义一个式子:bi=ai⊕⊕&#123;j=1,n&#125;(i%j) * 求⊕&#123;i=1,n&
2020-09-06
  目录