方法一:

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函数

 

版权声明:本文为xumBlog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xumBlog/p/8867590.html