sql语句能不能判断某个字段的值是否包含多个值?
比如这样:有一张表,表中有个name字段,这个字段的值有的包含多个用逗号分开名字,形如 :aaa,bbb,ccc。怎么样写一条sql语句查出来name字段有多个值的数据?
首先建议重新设计表。 这已经违反第一范式了。
并且这样的查询不能使用索引效率会很低。
如果非要做的话目前的Mysql的版本里没有类似于Split的函数,只能自己创建函数了。
这里贴个连接:http://greemranqq.iteye.com/blog/1682199
然后在sql语句中使用这个函数
或者Mysql5.7以上,原生支持JSON了,你可以把多个name存储为json格式,mysql提供了很多函数可以处理json数据
select * from table t
where t.name like '%,%';
没有太明白,你想问的意思。
曲线救国。直接判断字符串中是否有逗号,用like'%,%'
另外就是上面同学们说的like了,你想判断有几个,那么可以这样: select * from virtual_order where remark like '%,%,%'; 相当于一个正则表达式匹配。要查询有几个名字的,就有几个%
判断有没有‘,’的存在即可吧