Mysql数据库操作语句总结(二)

Mysql字符串字段判断是否包含字符串的3中方法

方法一:

select * from user where email like "%b@email.com%";
// 这个理解起来很简单, 就是最基本的sql语句了

方法二:

// 使用find_in_set是必须全部匹配才有效果
find_in_set(str1,str2)函数是返回str2中str1所在的位置索引, str2必须以","分割开

select find_in_set('james', 'km,james,kl');
// 返回2, 返回的是位置索引, 从1开始

select
* from user where find_in_set('james', name);
// 返回的是user表中name字段值是james的所有行, 是完全匹配
// 当且只有name字段值是james, 才匹配, 其他如jam/jame等都不匹配

方法三:

使用locate(substr, str)函数,如果包含,返回>0的数,否则返回0 
例子:

//判断user表中的url是否包含
'http://'子串, 如果不包含则拼接在url字符串开头 update user set url = concat('http://', url) where locate('http://', url) = 0

筛选user表中name字段是否含有指定的名字, (注意这里是包含, 不是全匹配, 和上面的方法二有区别)
select name,email from user where locate(name,"james,tom,kaven") > 0 //如果name字段内容是jam, 那么就符合条件; 如果name字段内容是james, 也符合条件.
//如果name字段内容是tims, 就不符合.
注意mysql中字符串的拼接不能使用加号
+,用concat函数
原文地址:https://www.cnblogs.com/xumBlog/p/8867590.html