有這樣一個需求,在Mysql數據庫字符串字段(權限)中,用戶有多個不同的郵箱,分別被‘,’分開,現在要取出某個郵箱的所有成員列表。
假設有個表:
users(id () AUTO_INCREMENT, (id), () ,emails () );
初始化表,並添加些記錄。
users(, emails) (, users(, emails) (,);
Mysql 中有些字段是字符串類型的,如何查找其中包含某些字符的記錄呢?
方法一
很簡單可以用%來實現
比如
users emails "b.com";
但是這樣子的話就會把[email protected]也查出來了就不符合需求了
方法二
利用mysql 字符串函數 find_in_set();
users find_in_set(, emails);
這樣子就可以找到email字段裡包含有[email protected]的所有用戶了
這樣就能達到我們預期的效果,問題就解決了!
要注意的是:mysql字符串函數 find_in_set(str1,str2)函數是返回str2中str1所在的位置索引,str2必須以","分割開。