如何在SQL中使用BETWEEN运算符? [英] How to use BETWEEN operator in SQL?
问题描述
我使用BETWEEN运算符编写sql查询并在gender_id = 1上应用WHERE子句。但是,当我运行查询时,显示来自gender_id = 2和gender_id = 1的1个数据已重新发布。
以下我提供查询我尝试的内容。
我尝试了什么:
Hi, i write sql query using BETWEEN operator and apply WHERE clause on gender_id = 1. But when i run query showing 1 data from gender_id=2 and gender_id= 1 realeted.
Following i provide query what i tryed.
What I have tried:
SELECT * FROM `wm_products` WHERE gender_id = 1 AND (pro_price BETWEEN 1000 AND 2500) OR (pro_price BETWEEN 2501 AND 5000) ORDER BY `wm_products`.`gender_id` DESC
推荐答案
这可能是您的括号(或缺少)的问题
It's probably a problem with your brackets (or lack of)
SELECT * FROM `wm_products` WHERE gender_id = 1 AND (pro_price BETWEEN 1000 AND 2500) OR (pro_price BETWEEN 2501 AND 5000) ORDER BY `wm_products`.`gender_id` DESC
你说的是gender_id = 1和(ABC)或(XYZ)
因此,如果XYZ为真,则该数据包含在您的子集中,因为它独立于gender_id和ABC之间的AND。你可能想要这样的东西
其中gender_id = 1和((ABC)或(XYZ))
所以或是它自己的比较,结果然后与gender_id进行AND运算
You are saying where gender_id = 1 and (ABC) or (XYZ)
so if XYZ is true then that data is included in your subset as it is independent from the AND between gender_id and ABC. You probably want something like this
where gender_id = 1 and ((ABC) or (XYZ))
so the "or" is its own comparison and the result is then ANDed with gender_id
SELECT * FROM `wm_products` WHERE gender_id = 1 AND ((pro_price BETWEEN 1000 AND 2500) OR (pro_price BETWEEN 2501 AND 5000)) ORDER BY `wm_products`.`gender_id` DESC
这篇关于如何在SQL中使用BETWEEN运算符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!