我使用了一个名为“ containsAll()”的Java方法来检查ArrayLists是否具有共同的内容.

假设我在MySQL表中有一个列表A(一行)和其他几个列表(在“名称”列中,逐行).

所有列表均由逗号分隔的字符串(列表中至少一个字符串)组成-名称或其他名称.

现在,我想检查列表A中的所有字符串是否都可以在“名称”列的任何行中找到.

结果集应显示“名称”中匹配的所有行,包括行/列表的行必须具有列表A中的所有字符串,并且可以具有其他字符串.

例子一

答:“ T先生”

____name_________________________________________

'Hannibal'

'Hannibal','Face','Murdock','Mr.T','Donald Duck'

'Face','Donald Duck'

'Superman','Chuck Norris','Mr.T'

_________________________________________________

结果集:“汉尼拔”,“脸部”,“默多克”,“ T先生”,“唐老鸭”-AND-

‘超人’,查克·诺里斯’,’T先生’

例二

答:“ Rocky”,“ Mr.T”,“ Apollo”

______name__________________________________________________

'Hannibal','Face','Murdock','Donald Duck','Superman','Mr.T'

'Rocky','Apollo','Ivan'

'Apollo', 'Superman','Hannibal','Rocky','Mr.T','Chuck Norris'

'Rocky','Mr.T','Apollo','Chuck Norris'

_____________________________________________________________

结果集:“ Apollo”,“ Superman”,“ Hannibal”,“ Rocky”,“ Mr.T”,“ Chuck Norris” -AND-

‘Rocky’,’T先生’,’Apollo’,’Cuck Norris’

我想知道是否可以使用MySQL查询执行那些结果.

先感谢您.

解决方法:

看来您想做一个数组交集,除了数组是单列.可以做到,但是会很慢,难以调试,并且不会利用关系数据库的功能.更好的方法是将表架构更改为以下形式:

表组

group_id int unsigned not null auto_increment primary key,

character_list text

表members_in_group

group_id int unsigned not null,

group_member varchar(45) not null

然后您可以像这样查询:

SELECT group_id, character_list

FROM groups g

JOIN members_in_groups m USING (group_id)

WHERE m.group_member IN ('Mr. T', ...);

groups表可能非常类似于您当前的表. Members_in_groups表是分割成易于搜索的部分的相同数据.

ETA给出了您的评论,如果您可以保证每个character_list仅包含每个字符的一个实例,则此方法应该起作用:

SELECT group_id,

SUM(CASE m.group_member IN ('Mr. T', 'Apollo', 'Rocky') THEN 1 ELSE 0 END) AS tally,

character_list

FROM groups g

JOIN members_in_groups m ON (g.group_id=m.group_id)

GROUP BY group_id

HAVING SUM(CASE m.group_member IN ('Mr. T', 'Apollo', 'Rocky') THEN 1 ELSE 0 END) = 3;

在这种情况下,HAVING子句必须等于3,因为IN中有3个成员(“ Mr. T”,“ Apollo”,“ Rocky”).

标签:mysql,list

来源: https://codeday.me/bug/20191011/1892301.html

mysql 逗号金额比较,如何使用MySQL比较两个逗号分隔的字符串列表相关推荐

  1. mysql 逗号金额比较_如何使用MySQL比较两个逗号分隔的字符串列...

    我使用了一个名为" containsAll()"的Java方法来检查ArrayLists是否具有共同的内容. 假设我在MySQL表中有一个列表A(一行)和其他几个列表(在" ...

  2. client mysql 逗号_mysql comment line client(MySQL命令行常用操作)

    [运行]mysql 1.通过MYSQL Command Line Client 登录MYSQL; 我在桌面上创建了mysql的图标 输入密码进入; 2.通过windows命令登录,开始 -> 运 ...

  3. mysql查询包含字符串的记录,MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法...

    首先我们建立一张带有逗号分隔的字符串. CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCH ...

  4. mysql 逗号 join_关于sql:MySQL中逗号分隔的连接和语法连接有什么区别?

    本问题已经有最佳答案,请猛点这里访问. 例如,如果我有一个表"person",其列"id"引用表"worker"中的列"id&qu ...

  5. linux 安装mysql 云盘_Linux平台安装MySQL总结

    Linux下rpm方式安装mysql 1.第一步 从百度云盘里获取压缩包 链接: https://pan.baidu.com/s/1bqb1A8n 密码: p5gb 2.第二步 使用Xshell连接服 ...

  6. mysql——逗号分割字段情况

    一.前言 由于历史原因.个人技术原因和各种坑爹项目原因,很多情况下我们会在一个字段中添加好多数据用逗号隔开,违反了第一范式原则. 对于这种情况下的查询等处理方法就不能用普通的方法进行处理,这个时候会出 ...

  7. mysql逗号后update_隔mysql逗号

    MySQL主从复制指定不同库表同步参数说明 replication 中通过以下参数减少binlog数据量 master端: --binlog-do-db 二进制日志记录的数据库(多数据库用逗号,隔开) ...

  8. client mysql 逗号_Mysql-Client编码问题

    Mysql编码问题! 首先,安装完mysql之后,登录进去(从控制台), 先要查看mysql编码:SHOW VARIABLES LIKE 'char%': (我这里是修改好的) 如果是没修改的,因为当 ...

  9. mysql存储金额的字段类型_mysql 货币字段类型的存储

    loat类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理.这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储 ...

最新文章

  1. 一个1990年代的小故事
  2. SQL Server之日期和时间函数
  3. struts、hibernate、spring、 mybatis、 spring boot 等面试题汇总
  4. shiro整合mybatis数据库
  5. 机器学习实战(七)线性回归(Linear Regression)
  6. Servlet学习的两个案例之网站访问次数的统计
  7. Golang sort 包使用
  8. Python-Matplotlib 12 多图figure
  9. 拓端tecdat|python卷积神经网络人体图像识别
  10. 计算机复制教程,教你如何提升电脑文件复制速度的详细教程
  11. ALFA深度学习外观检测自学习人工智能软件
  12. 怎么屏蔽计算机集成声卡,win10系统主板集成声卡关闭的设置方案
  13. python之if-else_Python中的if-else
  14. diamond专题(三)—— diamond架构
  15. 优维科技EasyOps®一体化运维平台入选“大信创产品目录”
  16. 使用公式使用户输入年利率,贷款额度和支付年数,计算支付额度
  17. A计划(三维dfs)
  18. 批处理 窗口最小化 java_如何让批处理程序启动的时候最小化
  19. Golang并发模型:轻松入门流水线FAN模式
  20. 用java实现计算器

热门文章

  1. 使用JWT实现单点登录(完全跨域方案)
  2. just for rest~
  3. android广播第三方库,Android Support 库:LocalBroadcastManager
  4. 哪里学php开发,哪里学web开发
  5. html如何查看文档,查看文档
  6. 建行B2B支付回调参数乱码现象解析
  7. 面向对象:包装类、对象处理、类成员
  8. let 和const
  9. SecureCRT SSH 语法高亮
  10. vue基础18(vue-cli脚手架项目中组件的使用)