最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL 判断字段是否包含某个字符串的方法

来源:懂视网 责编:小采 时间:2020-11-09 06:55:03
文档

MySQL 判断字段是否包含某个字符串的方法

MySQL 判断字段是否包含某个字符串的方法:MySQL 判断字段是否包含某个字符串的方法方法一:likeSELECT * FROM 表名 WHERE 字段名 like "%字符%";方法二:find_in_set()利用mysql 字符串函数 find_in_set();SELECT * FROM users WHERE find_in_set
推荐度:
导读MySQL 判断字段是否包含某个字符串的方法:MySQL 判断字段是否包含某个字符串的方法方法一:likeSELECT * FROM 表名 WHERE 字段名 like "%字符%";方法二:find_in_set()利用mysql 字符串函数 find_in_set();SELECT * FROM users WHERE find_in_set

MySQL 判断字段是否包含某个字符串的方法

方法一:like

SELECT * FROM 表名 WHERE 字段名 like "%字符%";

方法二:find_in_set()

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

SELECT * FROM users WHERE find_in_set('字符', 字段名);

这样是可以的,怎么理解呢?

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

注:当str2为NO1:“3,6,13,24,33,36”,NO2:“13,33,36,39”时,判断两个数据中str2字段是否包含‘3’,该函数可完美解决

mysql > SELECT find_in_set()('3','3,6,13,24,33,36') as test;
-> 1
mysql > SELECT find_in_set()('3','13,33,36,39') as test;
-> 0

方法三:locate(字符,字段名)

使用locate(字符,字段名)函数,如果包含,返回>0的数,否则返回0 ,

它的别名是 position in

select * from 表名 where locate(字符,字段)
select * from 表名 where position(字符 in 字段);

例子:判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头

update site set url =concat('http://',url) where locate('http://',url)=0

注意mysql中字符串的拼接不能使用加号+,用concat函数

方法四:INSTR(字段,字符)

select * from 表名 where INSTR(字段,字符)

另外,笔者查看了以上SQL的执行计划(不包含find_in_set),发现都是:

0af0471fbe217b22e764b3f1677649c.png

网上说模糊查询 用 locate 速度快,不知道结论怎么来的,可能是大数据量的情况下吧。

(免费学习视频教程推荐:mysql视频教程)

文档

MySQL 判断字段是否包含某个字符串的方法

MySQL 判断字段是否包含某个字符串的方法:MySQL 判断字段是否包含某个字符串的方法方法一:likeSELECT * FROM 表名 WHERE 字段名 like "%字符%";方法二:find_in_set()利用mysql 字符串函数 find_in_set();SELECT * FROM users WHERE find_in_set
推荐度:
标签: 方法 是否有 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top