问题是按电影ID对电影进行排序,并将标题和年份分成MySQL中的单独列。对电影进行排序不是问题,但是我试图将其中包含两组数据的列分开。一个是电影的标题,另一个是电影的发行年份。
例如“玩具总动员(1998)”,“铁巨人(1999)”。
所需的输出将是这些电影的标题列和相应的年份列。
我将不得不拆分大约一百万列电影标题和年份。反正是MySQL吗?
答案 0 :(得分:2)
我们可以在此处尝试使用SUBSTRING_INDEX
和INSTR
SELECT
SUBSTRING(title, 1, INSTR(title, '(') - 2) AS name,
REPLACE(REPLACE(SUBSTRING_INDEX(title, ' ', -1), '(', ''), ')', '') AS year
FROM yourTable;
我们通过使用一个子串来隔离电影的名称,该子串最多但不包括第一个空格和左括号。可以通过取最后一个学期并删除左括号和右括号来找到年份。
答案 1 :(得分:0)
我将为此使用substring_index()
select substring_index(titleyear, ' (', 1) as title,
substring_index(titleyear, ' (', -1) + 0 as year
第二部分使用隐式转换将值存储为一年。
您还可以使用以下方式将年份提取为字符串:
substr(titleyear, -5, 4) as year