问题是在mysql中按电影id对电影进行排序,并将标题和年份拆分为单独的列。排序电影不是一个问题,但我正在尝试分离一列中有两组数据。一个是电影的标题,另一个是电影发行的年份。例如《玩具总动员》(1998)、《钢铁巨人》(1999)。期望的输出是为这些电影设置标题栏和相应的年份栏。大约有超过一百万个专栏,我不得不把电影的标题和年份分开。这是mysql吗?
41zrol4v1#
我们可以试着用 SUBSTRING_INDEX 以及 INSTR 在这里:
SUBSTRING_INDEX
INSTR
SELECT SUBSTRING(title, 1, INSTR(title, '(') - 2) AS name, REPLACE(REPLACE(SUBSTRING_INDEX(title, ' ', -1), '(', ''), ')', '') AS year FROM yourTable;
我们通过在第一个空格和左括号前加一个子串(但不包括第一个空格)来隔离电影的名称。年份是通过取最后一个词并去掉左括号和右括号来确定的。
m2xkgtsf2#
我只想用 substring_index() 为此:
substring_index()
select substring_index(titleyear, ' (', 1) as title, substring_index(titleyear, ' (', -1) + 0 as year
第二部分使用隐式转换将值存储为一年。您还可以使用以下命令将年份提取为字符串:
substr(titleyear, -5, 4) as year
2条答案
按热度按时间41zrol4v1#
我们可以试着用
SUBSTRING_INDEX
以及INSTR
在这里:演示
我们通过在第一个空格和左括号前加一个子串(但不包括第一个空格)来隔离电影的名称。年份是通过取最后一个词并去掉左括号和右括号来确定的。
m2xkgtsf2#
我只想用
substring_index()
为此:第二部分使用隐式转换将值存储为一年。
您还可以使用以下命令将年份提取为字符串: