日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2023/12/10 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 逗号金额比较,如何使用MySQL比较两个逗号分隔的字符串列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我使用了一個名為“ 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比较两个逗号分隔的字符串列表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。