簡體   English   中英

有沒有一種方法可以將列中的2個值分成兩個獨立的列?

[英]Is there a way to seperate 2 values in column into two seperate columns?

問題是按電影ID對電影進行排序,並將標題和年份拆分為MySQL中的單獨列。 對電影進行排序不是問題,但是我試圖將其中包含兩組數據的列分開。 一個是電影的標題,另一個是電影的發行年份。

例如“玩具總動員(1998)”,“鐵巨人(1999)”。

期望的輸出將是這些電影具有標題列和相應的年份列。

我將不得不拆分大約一百萬列電影標題和年份。 反正是MySQL嗎?

我們可以在這里嘗試使用SUBSTRING_INDEXINSTR

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM