mysql對列值(例逗號分隔的id)進行子查詢

2021-10-06 17:07:42 字數 1226 閱讀 2565

環境用的是mysql5.5,mysql8的沒進行過測試,大家可以試試看先。

有兩張表,topic和topic_answer,分別是題目和答案。需求是根據題目表查詢對應的答案,這個題目的答案可能有很多個,答案對應的id以逗號分隔方式,儲存在topic中的answer中。網上用的方法有迴圈,拆分字串,but 我比較懶。。。看到那麼多的**就腦闊疼,所以我決定使用正則進行匹配

;一、直接使用子查詢,結果將查詢出來的整個結果等同於字串

這裡第二種結果才是我們想要的,所以最開始我想到的是拆分字串,後面去度娘上看了下,**太多果斷放棄了。

二、正則

網上找了好幾個帖子,用的是這種方式,初看好像是成功了,但當我們新增id為1開頭的其他記錄時,emmm。

他的原理應該是根據括號裡的進行模糊查詢,含有1或者2的就匹配到了。不過這說明這條路應該走的通,只要我們把查詢搞成精確查詢就行了。

三、結果:

mysql 逗號分隔的id轉為逗號分隔的名稱

mysql 的一張表a的某1欄位是用逗號分隔的code,每個code對應在b表的有code和名稱的對應表。如果用語句檢索出,用逗號分隔的名稱拼接在一起。select b.engine number,group concat code name astran name fromt fix code a...

獲取為以逗號分隔列值的字串

有否想過,獲取為以逗號分隔列值的字串。下面的語句顯示乙個簡單的例子,你可以作為乙個起點。select stuff select title from employees forxml path 1,2,全文完 以下為廣告部分 如果您想看下您的 https部署的是否安全,花1分鐘時間來 myssl.c...

把某一列值轉換為逗號分隔字串

問題是這樣的。從訂閱表中select某乙個使用者所有訂閱的目錄,然後可以繫結至前台顯示給使用者,讓使用者知道自己有哪些訂閱和哪些目錄沒有訂閱。如下表 需要select使用者id為15的所有訂閱目錄。如最終結果 insus.net是在sql server 2012結合xml的for xml path ...