我使用名为'containsAll()'的Java方法来检查ArrayLists是否具有公共内容。如何使用MySQL比较两个以逗号分隔的字符串列表
比方说,我有一个列表A(一行),和一个MySQL表(列'名称',逐行)中的几个其他列表。 所有列表都由逗号分隔的字符串(至少一个列表中的一个字符串) - 名称或其他组成。
现在,我想检查列'A'中的任何行中是否可以找到列表A中的所有字符串。 结果集应显示匹配的'名称'中的所有行,其中包括行/列表必须包含列表A中的所有字符串,并且可以具有其他字符串。
例I
一个: 'Mr.T'
____name_________________________________________
'Hannibal'
'Hannibal','Face','Murdock','Mr.T','Donald Duck'
'Face','Donald Duck'
'Superman','Chuck Norris','Mr.T'
_________________________________________________
结果集: '汉尼拔', '脸', 'Murdock的', 'Mr.T', '唐老鸭' - AND- '超人',查诺里斯, 'Mr.T'
例II
一个: '洛奇', 'Mr.T', '阿波罗'
______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'
_____________________________________________________________
结果集: '阿波罗', '超人', '汉尼拔', '洛奇', 'Mr.T', '查克·诺里斯' -AND- '洛奇', 'Mr.T', 'Apollo','Cuck Norris'
我不知道是否可以使用MySQL查询来执行这些结果。 预先感谢您。
看起来像DB中的多值字段 - 这通常是设计不好的警告信号。 – Romain 2012-08-13 14:08:44
是不是有一个原因,你没有使用表来存储字符名称值和另一个表来存储任何表存储这些列表和包含字符名称的表之间的关系?这种关系有一个名字 - 许多人都是这样 - 在RDBMS中建模并不困难。 – 2012-08-13 14:11:24
我正在开发一个小应用程序。那么,在客户端,最终用户能够与界面进行交互,因此在飞行中选择了一个字符串列表。在服务器端,这些字符串列表将与我的MySQL数据库的内容进行比较。我已经有了一个可以工作的DB设计方案。我仅使用Java和外部平面文件进行了列表之间的比较。但它太慢了...... – 2012-08-13 16:37:32