>  기사  >  백엔드 개발  >  一条sql话语中有两个between and

一条sql话语中有两个between and

WBOY
WBOY원래의
2016-06-13 12:16:041510검색

一条sql语句中有两个between and
想实现的功能:
按两个属性搜索,如图:

数据库设计如图:(数据库设计已定不能更改了)
这是category_value表
这是 buy_6表
我写的sql语句:
select b.* from category_value as v, buy_6 as b where status=3 and v.itemid = b.itemid and v.moduleid=6 and v.value BETWEEN 2 and 7 and v.oid=6 and v.value BETWEEN 1 and 10 and v.oid=4

如果只按一个数据搜索没问题,两个属性就搜索不出数据
sql中v.oid=4指的是颜色属性id为4,v.oid=6指的是高度属性id为6
------解决思路----------------------
这不是 between 的问题!
在你的 sql 
select b.* from category_value as v, buy_6 as b where status=3 and v.itemid = b.itemid and v.moduleid=6 and v.value BETWEEN 2 and 7 and v.oid=6 and v.value BETWEEN 1 and 10 and v.oid=4
既然 v.oid 不可能同时等于 6 和 4
那么自然就不会有结果的
------解决思路----------------------
按你的意思,似乎应该是:
(v.value BETWEEN 2 and 7 and v.oid=6) or (v.value BETWEEN 1 and 10 and v.oid=4)
所以sql语句应该为:
select b.* from category_value as v, buy_6 as b where status=3 and v.itemid = b.itemid and v.moduleid=6 and ((v.value BETWEEN 2 and 7 and v.oid=6) or (v.value BETWEEN 1 and 10 and v.oid=4))

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.