如何在SQL中使用BETWEEN运算符? [英] How to use BETWEEN operator in SQL?

查看:93
本文介绍了如何在SQL中使用BETWEEN运算符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆