Heim  >  Fragen und Antworten  >  Hauptteil

Finden Sie den Jahresbereich für MySQL REGEXP

Ich möchte den Inhalt in einer Tabelle auf meiner Film-Website nach Jahresintervallen aufteilen, aber so sehr ich es auch versuche, es gelingt mir nicht. Eigentlich möchte ich vorher die Filmdateien auflisten 1950. Ich weiß nicht, ob ich einen Grammatikfehler gemacht habe, weil ich Anfänger bin

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粉545910687183 Tage vor413

Antworte allen(1)Ich werde antworten

  • 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] 以匹配数字。

    Antwort
    0
  • StornierenAntwort