【问题标题】:MySQL IMDB Filtering Release DatesMySQL IMDB 过滤发布日期
【发布时间】:2016-10-17 07:04:01
【问题描述】:

我也问过类似的问题,但有人建议我单独问这个问题。

我正在使用 IMDB 数据库,并且 release_dates 表的设置如下:

+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| movie_id     | int(11)      | YES  |     | NULL    |       |
| release_date | varchar(255) | YES  |     | NULL    |       |
+--------------+--------------+------+-----+---------+-------+
2 rows in set (0.06 sec)

movie_id    release_date
    2     USA:22 January 2006
    3     USA:12 February 2006
    4     USA:19 February 2006
    5     USA:22 January 2006
    6     USA:19 March 2006

但是,有些记录只有部分日期:

movie_id    release_date
    86     USA:June 2005
    90     USA:2003

不适用:

SELECT str_to_date(substring_index(release_date, ':', -1), '%d %M %Y') FROM release_dates;

因为它会导致只有年或月/年的记录出现 NULL。

我的理想结果是能够过滤掉 1984 年之前的电影,我只是不确定如何使用我所拥有的不幸碎片化数据来实现这一点。

谢谢!

【问题讨论】:

    标签: mysql filtering imdb


    【解决方案1】:

    如果您不需要日期不完整的记录,您可以使用正则表达式仅返回日期完整的记录。 http://dev.mysql.com/doc/refman/5.7/en/regexp.html

    或者你可以使用 case 语句和 说明日期的不同变化。

    https://www.1keydata.com/sql/sql-case.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 1970-01-01
      相关资源
      最近更新 更多