Dzq_Boyka
2015-08-26 01:56
采纳率: 87.2%
浏览 1.5k

sql查询问题求大神解答

sql语句能不能判断某个字段的值是否包含多个值?
比如这样:有一张表,表中有个name字段,这个字段的值有的包含多个用逗号分开名字,形如 :aaa,bbb,ccc。怎么样写一条sql语句查出来name字段有多个值的数据?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • three_man 2015-08-26 02:57
    已采纳

    首先建议重新设计表。 这已经违反第一范式了。
    并且这样的查询不能使用索引效率会很低。

    如果非要做的话目前的Mysql的版本里没有类似于Split的函数,只能自己创建函数了。
    这里贴个连接:http://greemranqq.iteye.com/blog/1682199
    然后在sql语句中使用这个函数

    或者Mysql5.7以上,原生支持JSON了,你可以把多个name存储为json格式,mysql提供了很多函数可以处理json数据

    已采纳该答案
    打赏 评论
  • 西风残阳 2015-08-26 02:08

    select * from table t
    where t.name like '%,%';

    打赏 评论
  • 棒怡情 2015-08-26 02:23

    没有太明白,你想问的意思。

    打赏 评论
  • oyljerry 2015-08-26 02:48

    曲线救国。直接判断字符串中是否有逗号,用like'%,%'

    打赏 评论
  • three_man 2015-08-26 03:02

    另外就是上面同学们说的like了,你想判断有几个,那么可以这样: select * from virtual_order where remark like '%,%,%'; 相当于一个正则表达式匹配。要查询有几个名字的,就有几个%

    打赏 评论
  • yuke198907 2015-08-27 01:10

    判断有没有‘,’的存在即可吧

    打赏 评论

相关推荐 更多相似问题