Sorteren op rijen zonder rekening te houden met haakjes
ik heb een tabel "songs" die bevat "album", "track", "artist", "title"
In die tabel staat het liedje "(I've had the) time of my life"
Bij de query "SELECT artist, title FROM songs ORDER BY title ASC" staat dit liedje op de eerste plaats en dan gesorteerd op nummers en alfabet
Ik zou echter willen dat dit liedje bij de T staat van "Time of my life", hoe kan ik de query bouwen?
FROM afkortingen
WHERE title LIKE 't%'
Het eenvoudigst is denk ik een kolom 'sortstring' toevoegen aan je tabel waarin je alleen dat deel van de titel opneemt waarop gesorteerd moet worden. Als je dan bijvoorbeeld iets hebt als '2 Unlimited' en in je sortstring 'Two Unlimited' zet, zal die entry in de sortering niet bij de 2 staan, maar bij de T. Op die manier kun je alle situaties afdekken. Nadeel is wel dat je de data schijnbaar dubbel moet opslaan.
Dan voorkom je inderdaad dingen als 'N Sync.
Let op de apostrof. Je wilt hem bij de N hebben.
En 2Unlimited wellicht bij de 2 als ook bij de T(wo) opslaan.
En bij 50cent ook.
En bij 3 Doors Down ook.
Wat doet het levensthijn-algorytme met cijfers?
album | track | artist | title | sort_artist | sort_title
A1 | 1 | Jennifer Warnes & Bill Medley | (i've had the) time of my life | Jennifer Warnes & Bill Medley | time of my life
SELECT artist, title FROM songs ORDER BY sort_title ASC
Bedankt voor de positieve reacties
Gewijzigd op 16/09/2014 10:41:49 door G P
- Aar - op 16/09/2014 10:12:14:
Wat doet het levensthijn-algorytme met cijfers?
Is levenshtein hier uberhaupt geschikt voor? Ik zou denk ik eerder soundex nemen.
Order by replace zou ik gebruiken als de tabel niet te groot is. Anders te traag of extra veld