从特定的 sql 范围获取

Posted

技术标签:

【中文标题】从特定的 sql 范围获取【英文标题】:Get from certain sql range 【发布时间】:2021-03-30 08:54:39 【问题描述】:

我有以下video 表:

create table videos(
  title text,
  date_range text);
  
insert into videos(title, date_range) values 
('Title1', '["2021-03-18 - 2021-03-20", "2021-03-01 - 2021-03-05", "2021-03-15"]'),
('Title2', '["2021-02-12 - 2021-02-13", "2021-02-02 - 2021-02-06","2021-02-10"]');
+--------+----------------------------------------------------------------------+
| title  |                date_range                                            |
+--------+----------------------------------------------------------------------+
| Title1 | ["2021-03-18 - 2021-03-20", "2021-03-01 - 2021-03-05", "2021-03-15"] |
| Title2 | ["2021-02-12 - 2021-02-13", "2021-02-02 - 2021-02-06","2021-02-10"]  |
+--------+----------------------------------------------------------------------+

如何从2021-03-18 - 2021-03-19获取视频?

所以结果表应该是这样的:

+--------+----------------------------------------------------------------------+
| title  |                date_range                                            |
+--------+----------------------------------------------------------------------+
| Title1 | ["2021-03-18 - 2021-03-20", "2021-03-01 - 2021-03-05", "2021-03-15"] |
+--------+----------------------------------------------------------------------+

这里有 fiddle 和这张表,但没有结果,因为我不知道如何实现这一点。 提前致谢!

【问题讨论】:

考虑规范化你的架构 【参考方案1】:

规范化的模式可能如下所示:

id title  date_range_start date_range_end
 1 Title1 2021-03-18       2021-03-20
 2 Title1 2021-03-01       2021-03-05
 3 Title1 2021-03-15       2021-03-15
 4 Title2 2021-02-12       2021-02-13
 5 Title2 2021-02-02       2021-02-06
 6 Title2 2021-02-10       2021-02-10

【讨论】:

我不想那样做,有没有办法在不规范化架构的情况下做到这一点? 草莓就在这里。如果您希望能够进行过时的查询,则必须规范他的做法。您还可以有一个表,其中的标题链接到一个日期范围表来实现相同的目的。无论如何,您的架构不适合日期查询。 在我看来,您有两个选择: 1. 规范化您的架构。 2. 不要为 RDBMS 烦恼

以上是关于从特定的 sql 范围获取的主要内容,如果未能解决你的问题,请参考以下文章

Sql-Get 时间范围从百万+行特定条件

SQL Server - 在按特定列分组时构建动态范围的数字

如何从 rand() 获取特定范围的数字?

我在表单中使用了日期范围选择器如何禁用从 MySQL 数据库中获取的特定日期范围

javascript JavaScript:从特定范围获取随机数

javascript JavaScript:从特定范围获取随机数