Heim > Datenbank > MySQL-Tutorial > Mysql查找如何判断字段是否包含某个字符串_MySQL

Mysql查找如何判断字段是否包含某个字符串_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-01 13:33:09
Original
1068 Leute haben es durchsucht

bitsCN.com

有这样一个需求,在Mysql数据库字符串字段(权限)中,用户有多个不同的邮箱,分别被‘,’分开,现在要取出某个邮箱的所有成员列表。

假设有个表:

 

CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),user_name VARCHAR(20) NOT NULL,emails VARCHAR(50) NOT NULL);
Nach dem Login kopieren

初始化表,并添加些记录。

truncate table usersINSERT INTO users(user_name, emails) VALUES('小张','a@email.com,b@email.com,c@email.com');INSERT INTO users(user_name, emails) VALUES('小王','aa@email.com,bb@email.com,cc@email.com');
Nach dem Login kopieren

Mysql 中有些字段是字符串类型的,如何查找其中包含某些字符的记录呢?

方法一

很简单可以用%来实现

比如

SELECT * FROM users WHERE emails like "%b@email.com%";
Nach dem Login kopieren

但是这样子的话就会把bb@email.com也查出来了就不符合需求了

方法二

利用mysql 字符串函数 find_in_set();

SELECT * FROM users WHERE find_in_set('aa@email.com', emails); 
Nach dem Login kopieren

这样子就可以找到email字段里包含有aa@emial.com的所有用户了

这样就能达到我们预期的效果,问题就解决了!

要注意的是:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。

bitsCN.com
Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage