Ich bin mir ziemlich sicher, dass ich das irgendwo gesehen habe, aber ich kann die richtige Terminologie nicht finden, so Ich habe Probleme ...Conditional Spalte für die Suche auf der Basis anderer Spalten in MySQL
Lasst uns sagen, dass ich eine Tabelle mit Benutzerinformationen haben (nehmen wir auch an, dass sie von jemandem erstellt wurde, der mehr bezahlt als ich, so ist das Ändern des Schemas keine Option.) Unter den verschiedenen Spalten der Benutzerinformationen befinden sich Spalten für DOB und Jobtitel. Ich möchte eine Abfrage, die, bezogen auf das, was in diesen Spalten ist, wird eine zusätzliche Spalte namens „Real_Title“, zum Beispiel umfassen:
User_id Job_Title DOB
joe_1 manager 01/01/1950
jim_1 associate 01/01/1970
jill_1 associate 01/01/1985
jane_1 manager 01/01/1975
query:
SELECT User_id, Real_Title FROM users
IF (YEAR(DOB) < 1980 AND Job_Title = "manager")
{Real_Title = "Old Fart"}
ELSE IF (YEAR(DOB) < 1980 AND Job_Title = "associate")
{Real_Title = "Old Timer"}
ELSE IF (YEAR(DOB) > 1980 AND Job_Title = "manager")
{Real_Title = "Eager Beaver"}
ELSE IF (YEAR(DOB) > 1980 AND Job_Title = "associate")
{Real_Title = "Slacker"}
Ich weiß, dass die oben nicht nur falsch, aber auch wirklich ineffizient codiert, aber ich wollte die Idee vermitteln.
Gibt es eine Möglichkeit, ohne eine Joins zu verwenden, eine Spalte basierend auf Informationen in einer oder mehreren anderen Spalten in derselben Tabelle aufzufüllen?
Momentan verwende ich etwas im PHP-Skript, nachdem die Ergebnisse erhalten wurden, um diese Ergebnisse in die gewünschten Gruppen zu kanalisieren, aber wenn es in der Abfrage durchgeführt werden kann, würde dies die Abfrage auf andere Skripte und Sprachen portieren viel einfacher.
Danke!
DOB <1980 = Old Fart ?! – JohnB
Überprüfen Sie mein Alter und beachten Sie, dass ich bestenfalls ein alter Timer bin. – Anthony