Hjälp med mysql; Lista filmer i alfabetisk ordning utan "The"

Permalänk

Hjälp med mysql; Lista filmer i alfabetisk ordning utan "The"

Jag behöver hjälp med en mysql fråga, jag vill lista mina filmer i alfabetisk ordning men har problem med filmer som börjar med "The" i början.

exempel:

"The Movie(2010)" ska bli "Movie, The(2010)"

Såhär ser min mysql query ut hittills, den tar bara bort "The", behöver hjälp med att få in "The" mellan titelnamnet och "årtalet"

SELECT CASE WHEN SUBSTRING_INDEX(title,' ',1) IN ('the') THEN SUBSTRING( title,LOCATE(' ',title)+1 ) ELSE titleEND AS NewTitleOrder,title FROM list ORDER BY title

Tack på förhand

Visa signatur

Antec Three Hundred | Intel C2Q Q6700 | Asus P5Q P45 | Corsair DDR2 4096MB | Radeon HD 3450 | 3xSamsung F1 1TB, 2xSamsung F1 750GB, Seagate 1TB, WD ext. 500GB

Permalänk
Medlem

Skulle nog rekommendera dig att lagra artalen i en egen kolumn. Har andrat lite i din SQL (dock inte testad):

SELECT CASE WHEN SUBSTRING_INDEX(title, ' ', 1) IN ('the') THEN CONCAT(SUBSTRING(title,LOCATE(' ', title)+1 ), ', ', SUBSTRING(title, 0, 3)) ELSE title END AS fixed_title, year FROM list ORDER BY fixed_title

Och sedan skriva ut med nagot liknande:

printf('%s (%d)', $row['fixed_title'], $row['year']);

Edit: andrade lite i SQL-satsen

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo

Permalänk
Medlem

Årtalen samt sorteringssträngen i en egen kolumn. Det finns andra undantag än "The" i början av en titel.

Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607