MySql 查詢以逗號分隔的字串的方法(正則)

2021-09-02 05:21:21 字數 936 閱讀 7234

現資料庫表中某個字段儲存的值為「01,07,08」,需要sql去查詢下表中到相應的名稱:

nnd,一點思路都木有,想了老久,突然想到了正規表示式....!啊哈哈哈.....

1、最開始想到的是find_in_set()...

查詢欄位中包含01,07,08的記錄:

select * from test where find_in_set('01',itemname) or find_in_set('07',itemname);
想想,媽蛋,這存sql,腫麼給它拆分開呢,難道再迴圈一下....

2、正規表示式,完美解決:

select * from test where itemname regexp '(01|07|08)';
select * from test where concat(',',itemname,',') regexp '[^0-9]+[3|9][^0-9]+';
這個查詢出來是多條資料的,然後再用到了group_concat()函式,ok

專案中就這麼寫的:

select

group_concat(itemname)

from

code_library

where

codeno = 'com_insurance'

and itemno regexp (

select

replace (species, ',', '|')

from

capital_info

where

customerid = '2016011800000001'

)

mysql 逗號分隔查詢

商品表 goods 有學校字段 school ids 學校字段 school ids 中儲存學校表 school 的id,如果商品包含多個學校則多個id使用逗號分隔儲存 查詢sql select g.id,g.school ids,group concat s.locality name from ...

MYSQL查詢某欄位中以逗號分隔的字串的方法

首先我們建立一張帶有逗號分隔的字串。create table test id int 6 not null auto increment,primary key id pname varchar 20 not null,pnum varchar 50 not null 然後插入帶有逗號分隔的測試資料...

MYSQL查詢某欄位中以逗號分隔的字串的方法

首先我們建立一張帶有逗號分隔的字串。create table test id int 6 not null auto increment,primary key id pname varchar 20 not null,pnum varchar 50 not null 然後插入帶有逗號分隔的測試資料...