方法一:
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函数