Wie ordnen Sie nach Titel in mysql und ignorieren das Wort "the"?

8

Ich habe eine Liste von Filmen, die ich nach Buchstaben gruppiert habe. Natürlich haben die Filme, die mit dem Buchstaben "T" beginnen, ungefähr 80% der Filme, die mit "The" beginnen. Filme wie "The Dark Knight" sollten in der "D" -Liste und vorzugsweise auch im "T" erscheinen. Kann ich das irgendwie machen?

Ich verwende den folgenden Code in der WHERE-Klausel, um Filme anzuzeigen, die mit einem bestimmten Buchstaben beginnen und "das" ignorieren, aber dies hatte auch einen praktischen Nebeneffekt, dass ein Film wie "The Dark Knight" für den Buchstaben erscheint. D "und" T ".

%Vor%

Ich möchte das erreichen, wenn ich alle Filme in der Datenbank ausspreche.

    
William Brendel 30.03.2009, 00:02
quelle

6 Antworten

18

Wenn Sie diese Abfrage häufig ausführen möchten, sollten Sie in der Tabelle ein separates Feld mit dem Namen "Sortiert" erstellen. Die Verwendung von regulären Ausdrücken oder anderen Operationen macht es für MySQL unmöglich, den Index zu nutzen.

Also ist die einfachste und effizienteste Lösung, dass Sie ein movie_title_short -Feld hinzufügen, das movie_title ohne "The" oder "A" enthält. Achten Sie darauf, dem Feld movie_title_short auch einen Index hinzuzufügen!

    
carl 30.03.2009, 00:05
quelle
6

Wie Carl sagte, würde ich dies in ein eigenes indizierbares Feld einbauen, um zu vermeiden, es jedes Mal berechnen zu müssen. Ich würde empfehlen, es auf eine etwas andere Weise zu tun, um Redundanz zu vermeiden.

%Vor%

zB:

%Vor%

Auf diese Weise können Sie diese Filme auf zwei verschiedene Arten anzeigen: "name, namePrefix" oder "namePrefix name" und können entsprechend sortiert werden.

    
nickf 30.03.2009 00:25
quelle
1
%Vor%     
GSerg 30.03.2009 00:12
quelle
1

Sie können die Funktion mysql replace in der select-Klausel ...

verwenden %Vor%     
jle 30.03.2009 00:14
quelle
1

Ich hatte gerade dieses Problem selbst ... Lösung ist:

%Vor%

Dies gibt Ihnen nur Ergebnisse, die mit "The D" oder "D"

beginnen     
Macie 03.09.2009 15:12
quelle
0

Verwenden Sie dies:

%Vor%     
AbeEstrada 21.05.2009 21:45
quelle

Tags und Links