如何编写sql精确匹配某字段中的特定字符?

qq1212 2013-10-23 06:02:58
oracle数据库中,某张表A有个字段x,内容为"234,432,444,8888",用","来分割数据

我如何写sql,当我想精确匹配里面逗号分割的某个字段?
比如输入888要不匹配,8888则匹配;44不匹配,444才能匹配。类似如此
regexp_like好像只能部分匹配,我实在没辙了
...全文
485 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq1212 2013-10-30
  • 打赏
  • 举报
回复
引用 8 楼 badluckly1 的回复:
如果想简单的话,需要对A字段X稍作修改,可以在prc里完成,或在插入该行的时候完成。 观察“234,432,444,8888”发现长度不确定,输入“888”的话,会匹配本不应该匹配上的“8888”, 那我们做如下修改: 将“234,432,444,8888” 转化为 “,234,432,444,8888,”再去使用“,888,”进行匹配; 这样的话可以在原基础上改动最少,也使用了最少的代码解决了这个问题,看看是否可行。
兄弟 用你的方法结合regexp_like搞定了
badluckly1 2013-10-24
  • 打赏
  • 举报
回复
引用 楼主 qq1212 的回复:
oracle数据库中,某张表A有个字段x,内容为"234,432,444,8888",用","来分割数据 我如何写sql,当我想精确匹配里面逗号分割的某个字段? 比如输入888要不匹配,8888则匹配;44不匹配,444才能匹配。类似如此 regexp_like好像只能部分匹配,我实在没辙了
如果想简单的话,需要对A字段X稍作修改,可以在prc里完成,或在插入该行的时候完成。 观察“234,432,444,8888”发现长度不确定,输入“888”的话,会匹配本不应该匹配上的“8888”, 那我们做如下修改: 将“234,432,444,8888” 转化为 “,234,432,444,8888,”再去使用“,888,”进行匹配; 这样的话可以在原基础上改动最少,也使用了最少的代码解决了这个问题,看看是否可行。
tony4geek 2013-10-24
  • 打赏
  • 举报
回复
tony4geek 2013-10-24
  • 打赏
  • 举报
回复
你可以把x 字段查询出来。然后按逗号分割, 最后sql查询要查的数据是不是在分割的结果集中。
zhuweisyyc 2013-10-24
  • 打赏
  • 举报
回复
真要搞就自定义函数了,想怎么搞怎么搞,不过这样的维护成本很高。
你好毒你好毒 2013-10-24
  • 打赏
  • 举报
回复
java万岁
Andy238 2013-10-23
  • 打赏
  • 举报
回复
同意楼上的。
失落夏天 2013-10-23
  • 打赏
  • 举报
回复
我真晕。你把sql查询当成正则来用。。。 sql查询出来基本的结果就行了,剩下的靠service层来解决(逻辑解决)
尘缘udbwcso 2013-10-23
  • 打赏
  • 举报
回复
实在没辙了 可以用程序处理

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧