`

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

 
阅读更多
Mysql查找如何判断字段是否包含某个字符串

有这样一个需求,在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);


初始化表,并添加些记录。
 
truncate table users
INSERT 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');


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

方法一

很简单可以用%来实现

比如

SELECT * FROM users WHERE emails like "%b@email.com%";


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

方法二

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

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


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

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

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

相关推荐

    mysql数据库全文多库多表查找,查询所有数据库中包含指定字符的数据。

    mysql数据库全文查找,查询所有数据库中包含指定字符的数据。 一、支持功能: 1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定...

    从字符串中查找字符出现次数的方法和性能对比

    从字符串中查找字符出现次数的方法和性能对比

    查找mysql字段中固定字符串并替换的几个方法

    今天,在为黄页数据做整理时,发现数据库里的地址字段都是以 “中国” 开头的。 并且后紧跟着的是省份名称

    高效的忽略大小写的字符串替换(Replace)函数[定义].pdf

    String.SubString()循环方法是一种简单的字符串替换方法,它通过循环遍历字符串,查找要替换的子字符串的位置,并将其替换为新的字符串。这个方法的效率较高,但当要替换的字符串很多时,效率将下降。 4. ...

    mysql 按中文字段排序

    出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。 解决方法: 对于包含中文的字段...

    整理Linux中字符串的相关操作技巧

    我们在linux的操作中经常会对文件中的字符串进行替换、统计等操作,我们...sed -i “s/查找字段/替换字段/g” grep 查找字段 -rl 路径 -rl 表示所有子目录 sed -i s/new Str/old Str/g 'grep old Str -rl filename'

    php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串

    php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了。

    Mysql中正则表达式Regexp常见用法

    模糊匹配,包含特定字符串 # 查找content字段中包含“车友俱乐部”的记录 select * from club_content where content regexp ‘车友俱乐部’ # 此时的regexp与like的以下用法是等同的 select * from club_content...

    MySql 5.1 参考手册.chm

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 数据库、...

    MySQL 面试MySQL 面试MySQL 面试MySQL 面试MySQL 面试

    索引下推是 MySQL 5.6 版本以后引入的一个功能,它是在做索引检索的时候,对索引中包含的字段先进行判断,如果判断结果可以满足查询条件,则无需再回表查找数据,直接跳过这一部分数据。这种机制可以大幅提高查询...

    MySQL 5.1参考手册

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. ...

    MySQL 5.1中文手冊

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 数据库、...

    mysql查找程序

    同个字符串,查找所在数据库的表及字段名称,主要用于不熟悉的程序,快速查找相关字段等信息,快速了解数据库结构。 里面用到线程池和数据库连接池,为了加快搜索速度,而且嵌入文件查找工具

    MySQL 5.1官方简体中文参考手册

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/(第 8/24 页)2006-11...

    MySQL 5.1参考手册 (中文版)

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 数据库、...

    MySQL 5.1参考手册中文版

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. ...

    mysql5.1中文手册

    replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6....

    MYSQL中文手册

    8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2....

Global site tag (gtag.js) - Google Analytics