在SQL中按年份排序

时间:2019-02-05 16:53:25

标签: mysql sql string

使用似乎无法弄清楚的IMDb数据集时遇到一个问题。该问题要求仅显示1995年制作的电影。问题在于,每个电影标题都列出了年份,即:“玩具总动员(1995)”。您怎么能从一串文字中刮掉一年呢?

这是问题:

  

创建一个包含1995年电影名称的表

我们有一张桌子:电影:身份证,姓名。

电影

id,name
1,Toy Story (1995)
2,Jumanji (1995)
3,Grumpier Old Men (1996)
4,Waiting to Exhale (1995)
5,Father of the Bride Part II (1998)
6,Heat (1995)

关于如何分解文本字符串以按年排序的任何想法?

3 个答案:

答案 0 :(得分:4)

您可以使用backspace=1

like

答案 1 :(得分:1)

您的问题包含两个问题,所以我会根据

  

关于如何分解文本字符串以按年排序的任何想法?

您可以使用std::variant<int, std::string> v; v = 12; v = "text"; 对数据进行排序:

std::variant<A, B> a_or_b;

if(...) {
    a_or_b = A{};
} else {
    a_or_b = B{};
}

std::visit(
    [](Base& b) { /* do stuff with the base */ },
    a_or_b
);

答案 2 :(得分:0)

参考问题的标题而非内容...

SELECT * FROM my_table ORDER BY SUBSTRING_INDEX(name,'(',-1) + 0;
+----+------------------------------------+
| id | name                               |
+----+------------------------------------+
|  1 | Toy Story (1995)                   |
|  2 | Jumanji (1995)                     |
|  4 | Waiting to Exhale (1995)           |
|  6 | Heat (1995)                        |
|  3 | Grumpier Old Men (1996)            |
|  5 | Father of the Bride Part II (1998) |
+----+------------------------------------+