简体   繁体   English

MySQL查询-如何根据范围值选择行

[英]MySQL Query - how to select rows based on range value

Having a bit of an issue with this one. 这个有一点问题。 Is there a way to check if a value is in the range provided in a mysql query result. 有没有一种方法来检查值是否在mysql查询结果中提供的范围内。

How can I see if the Zip Code 85012 is within the ZipCodes field returned without first making a query, breaking it up into parts, and using BETWEEN? 如何查看Zip Code 85012是否在返回的ZipCodes字段内,而无需先进行查询,将其分解成多个部分并使用BETWEEN?

+---------+-------------+--------------------+------------+-------------+
| StyleID | HistStyleID | AutobuilderStyleID | FilterRule | ZipCodes    |
+---------+-------------+--------------------+------------+-------------+
|  355755 |  2013490103 | w2013k49m1t3       | includes   | 27000-36999 |
+---------+-------------+--------------------+------------+-------------+

:: UPDATE :: ::更新::

This table can also contain various ranges as follows.. 该表还可以包含如下各种范围。

+---------+-------------+--------------------+------------+-------------------------------------+
| StyleID | HistStyleID | AutobuilderStyleID | FilterRule | ZipCodes                            |
+---------+-------------+--------------------+------------+-------------------------------------+
|  332492 |  2012493107 | w2012k49m31t7      | excludes   | 38600-39799,70000-71499,71600-79999 |
+---------+-------------+--------------------+------------+-------------------------------------+

Like it's been suggested in the comments, you should redesign your database: 就像注释中建议的那样,您应该重新设计数据库:

CREATE TABLE Styles (
     StyleID INT PRIMARY KEY,
     HistStyleID INT, 
     AutobuilderStyleID VARCHAR(40),
     FilterRule VARCHAR(40)
)


CREATE TABLE ZipCodes (
     StyleID INT,
     RangeBegin INT,
     RangeEnd INT,

     FOREIGN KEY StyleID REFERENCES Styles(StyleID)
)

Then you can make queries like: 然后,您可以进行如下查询:

SELECT DISTINCT StyleID FROM ZipCodes WHERE RangeBegin >= 85012 AND RangeEnd <= 85012

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM