一个写查询的问题。
假设数据库里有个表A 字段 b 他存的数据格式大概是这样的 1,5,10,20 。。。 就是说1啊5啊什么 对应其他表里的id什么。。先不管。
现在假设 要查询 这个字段中 为5的,要怎么样处理呢
用like 的话有可能有 15,50 这样的。。。
java的
------解决方案-------------------- 不太理解楼主的意思。是想要15,50那样的,还是只想要5啊?
只想要5的话,直接用=不行么?为什么要用like?
SQL语句的写法和你编程语言没有太大关系,你把语句拿到数据库查询分析器里能用,放到程序里执行肯定也是一样的。
------解决方案-------------------- 引用: 引用:不太理解楼主的意思。是想要15,50那样的,还是只想要5啊?
只想要5的话,直接用=不行么?为什么要用like?
SQL语句的写法和你编程语言没有太大关系,你把语句拿到数据库查询分析器里能用,放到程序里执行肯定也是一样的。
一个字段值 5= 1,5,10,20 ?
用like 可能会把包含5的这样的查出来。其实那是不要的……
我更糊涂了,楼主说明白一点吧,你的1,5,10,20代表什么?一个字符串?
------解决方案-------------------- 估计是一个字段里面存储了1,2,3,5,15,20 然后需要找到里面包含5的?是这个意思吗?
如果是的话可以这样吗 = "5" or like "%,5,%" or like "5,%" or like "%,5";根据你的分隔符
------解决方案-------------------- 我在风中凌乱了,LZ什么意思?没太懂
------解决方案-------------------- 我正在做的项目基本都是这么做的 但是根据这个分割的有专门的查询方法
如楼主的需求 oracle 可写如下查询一次查出来
SELECT * FROM A
where instr(','
------解决方案-------------------- A.b
------解决方案-------------------- ',', ','
------解决方案-------------------- 5
------解决方案-------------------- ',') > 0
------解决方案-------------------- 引用: 这个是一对多关系, 里面数字分别代表一样东西,是其他表里的id
你的字段属性是什么?字符型?
那就用like吧,就是条件写具体一点就行了
引用: 估计是一个字段里面存储了1,2,3,5,15,20 然后需要找到里面包含5的?是这个意思吗?
如果是的话可以这样吗 = "5" or like "%,5,%" or like "5,%" or like "%,5";根据你的分隔符
这个就可以啊
------解决方案-------------------- 不知道楼主用的是什么数据库。如果用的是oracle10g的话可以直接用oracle的正则。
如果不是的话自己写个函数去解析这个。
------解决方案-------------------- 引用: 我正在做的项目基本都是这么做的 但是根据这个分割的有专门的查询方法
如楼主的需求 oracle 可写如下查询一次查出来
SELECT * FROM A
where instr(','------解决方案-------------------- A.b------解决方案-------------------- ',', ','------解决方案-------------------- 5------解决方案-------------------- ',') > 0
oracle 这个 没有别人说的那么复杂 这个就是专门处理这个问题的!楼主求测试!分个求,正则个求,自己写个求的函数
------解决方案-------------------- LZ这个问题我遇到过,
1、如果1,5,10,20 。。。 这个是序列号什么的,可以在插入数据库时将值设置大一些,不要让这些数据之间有重复,比如1000001,1000005,1000010。。。。。
2、插入数据库是首尾带上个逗号,比如,1,5,10,20 , 然后like时就是 like '%,xxx,%',也就没问题了。
3、可以自己写个函数将1,5,10,20分割开,然后用exists。