搜尋

首頁  >  問答  >  主體

尋找Mysql REGEXP的年份範圍

我想根據年份間隔來分離我的電影網站上表格中的內容,但無論我如何努力,我都無法成功。 實際上,我想要的是在 1950 之前列出電影檔案。 我不知道我是否犯了文法錯誤,因為我是初學者

A Movie 1910
B Movie 1920
C Movie 1930
D Movie 1940
E Movie 1950
F Movie 1970
G Movie 1990


SELECT * FROM streams WHERE type='movie' AND filename REGEXP '/^(190[1-9]\d|194\d)$/';

P粉545910687P粉545910687232 天前489

全部回覆(1)我來回復

  • P粉432930081

    P粉4329300812024-04-02 12:26:05

    年份位於檔案名稱的末尾,而不是開頭,因此您需要刪除 ^ 錨點。

    19 之後有一個額外的0,因此您匹配的是以190 開頭的5 位數年份,而不是4 位數以19 開頭的年份。

    不要在 SQL 中的正規表示式周圍放置 / 分隔符號。

    SELECT * FROM streams 
    WHERE type='movie' 
    AND filename REGEXP '19[0-4]\d$';

    如果您使用 MySQL 5.x 而不是 8.x,它不支援像 \d 這樣的轉義序列。將其替換為 [0-9] 以匹配數字。

    回覆
    0
  • 取消回覆