![](/img/trans.png)
[英]Two different values from same column as seperate columns return same results
[英]Is there a way to seperate 2 values in column into two seperate columns?
問題是按電影ID對電影進行排序,並將標題和年份拆分為MySQL中的單獨列。 對電影進行排序不是問題,但是我試圖將其中包含兩組數據的列分開。 一個是電影的標題,另一個是電影的發行年份。
例如“玩具總動員(1998)”,“鐵巨人(1999)”。
期望的輸出將是這些電影具有標題列和相應的年份列。
我將不得不拆分大約一百萬列電影標題和年份。 反正是MySQL嗎?
我們可以在這里嘗試使用SUBSTRING_INDEX
和INSTR
:
SELECT
SUBSTRING(title, 1, INSTR(title, '(') - 2) AS name,
REPLACE(REPLACE(SUBSTRING_INDEX(title, ' ', -1), '(', ''), ')', '') AS year
FROM yourTable;
我們通過使用一個子字符串來分隔電影的名稱,該子字符串最多但不包括第一個空格和左括號。 可以通過采用最后一項並刪除左括號和右括號來找到年份。
我將為此使用substring_index()
:
select substring_index(titleyear, ' (', 1) as title,
substring_index(titleyear, ' (', -1) + 0 as year
第二部分使用隱式轉換將值存儲為一年。
您還可以使用以下方式將年份提取為字符串:
substr(titleyear, -5, 4) as year
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.