oracle sql处理分割数据

一张表的类别字段的值为1,11,3,5等(每个数字对应相应的类别名称),现在有个类别的下拉列表(一次只能选择一个),通过搜索匹配相应的类别名称,不知道如何处理?

2个回答

建议参考这个:[url]http://www.iteye.com/problems/94346[/url]

zyn010101
zyn010101 select * from table where regexp_like(c, '(^|,)' || 下拉框值 || '(,|$)')
7 年多之前 回复
liu_bia
liu_bia 求解,谢谢
7 年多之前 回复
liu_bia
liu_bia 我这是一个的数据,不牵扯2个张表的
7 年多之前 回复
zyn010101
zyn010101 存的时候前后都放,号,匹配的时候前后都加,你尝试下http://www.iteye.com/problems/94346 的方式,他的问题跟你一样,解决了
7 年多之前 回复
liu_bia
liu_bia 例如我要查询下拉为1的值,结果会把11的数据也查出来,c like %1,% c like %,1%这种方式不妥吧
7 年多之前 回复
liu_bia
liu_bia like是不行的吧
7 年多之前 回复
zyn010101
zyn010101 like 或者 用正则表达式
7 年多之前 回复
liu_bia
liu_bia 下拉框只能选择一个值,表字段有多个值,如何能够准确查询出想要的数据?
7 年多之前 回复

一 都不走索引
1、模糊匹配
c like concat('%', '1', ',' ,'%') or c like concat('%', ',', '1' ,'%')
2、正则表达式 可以去找下语法

二如果数据量大 可以考虑全文索引

jinnianshilongnian
jinnianshilongnian 跟之前的问答是类似的 http://www.iteye.com/problems/94346 多试几遍 所有情况都试遍了 结果就出来了
7 年多之前 回复
liu_bia
liu_bia 求教???谢谢
7 年多之前 回复
liu_bia
liu_bia concat('%', ',', '1' ,'%') 这个写法不对呀
7 年多之前 回复
liu_bia
liu_bia select OA_ID, EXPERT_NAME, EXPERT_SEX, DEPARTMENT, EXPERT_TYPE, SPECIALTY, TECHNICAL, PHONE from ps_expert where OA_ID in (select OA_ID from ps_expert where concat(SPECIALTY, ',' , '%') ='1'); 执行不了,麻烦看下
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian 你试下 看着眼花 哈哈
7 年多之前 回复
liu_bia
liu_bia select OA_ID, EXPERT_NAME, EXPERT_SEX, DEPARTMENT, EXPERT_TYPE, SPECIALTY, TECHNICAL, PHONE from ps_expert where SPECIALTY concat('%', '1', ',' ,'%') or SPECIALTY like concat('%', ',', '1' ,'%') 这样不行吧
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian "逗号" 你不是逗号分隔嘛
7 年多之前 回复
liu_bia
liu_bia “有”是什么意思?谢谢
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian 怎么会呢 此处注意 有“,”
7 年多之前 回复
liu_bia
liu_bia 例如我要查询下拉为1的值,结果会把11的数据也查出来,c like %1,% c like %,1%这种方式不妥吧
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian 其实 就是 c like %1,% c like %,1% 之前有个问的和你的类似 下拉框只能选择一个值,表字段有多个值,如何能够准确查询出想要的数据? 如果是这种情况 最好建立关联表 而不是使用如1,2,3这样来存 否则肯定是全表扫描
7 年多之前 回复
liu_bia
liu_bia 下拉框只能选择一个值,表字段有多个值,如何能够准确查询出想要的数据?
7 年多之前 回复
liu_bia
liu_bia c like concat('%', '1', ',' ,'%') or c like concat('%', ',', '1' ,'%') oracle 用这种方式行吗?
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问