-
Mysql查找如何判斷字段是否包含某個字符串有這樣一個需求,在Mysql 數據庫字符串字段(權限)中,用戶有多個不同的郵箱,分別被‘,’分開,現在要取出某個郵箱的所有成員列表。假設有個表:1
CREATETABLEusers(idint(6)NOTNULLAUTO_INCREMENT,PRIMARYKEY(id),user_nameVARCHAR(20)NOTNULL,emailsVARCHAR(50)NOTNULL);初始化表,並添加些記錄。123truncatetableusersINSERTINTOusers(user_name, emails)VALUES('小張','a@email.com,b@email.com,c@email.com');INSERTINTOusers(user_name, emails)VALUES('小王','aa@email.com,bb@email.com,cc@email.com');Mysql 中有些字段是字符串類型的,如何查找其中包含某些字符的記錄呢?方法一很簡單可以用%來實現比如1SELECT*FROMusersWHEREemailslike"%b@email.com%";但是這樣子的話就會把bb@email.comҲ查出來了就不符合需求了方法二利用 mysql 字符串函數 find_in_set();1SELECT*FROMusersWHEREfind_in_set('aa@email.com', emails);這樣子就可以找到email字段里包含有aa@emial.com的所有用戶了這樣就能達到我們預期的效果,問題就解決了!要注意的是:mysql字符串函數 find_in_set(str1,str2)函數是返回str2中str1所在的位置索引,str2必須以","分割開。
