Sono abbastanza sicuro che ho visto da qualche parte, ma non riesco a trovare la giusta terminologia così Ho problemi ...colonna condizionale per query basata su altre colonne in MySQL
Diciamo che avere una tabella con le informazioni utente (supponiamo anche che sia stata creata da qualcuno che viene pagato più di me, quindi la modifica dello schema non è un'opzione.) Tra le varie colonne di informazioni utente ci sono le colonne per DOB e titolo del lavoro. Voglio una query che, sulla base di ciò che è in quelle colonne, includerà una colonna aggiuntiva denominata "Real_Title", per esempio:
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"}
So quanto sopra è non solo sbagliato ma anche codificato davvero inefficiente, ma volevo far passare l'idea.
C'è un modo, senza utilizzare join, per popolare una colonna in base alle informazioni in una o più altre colonne nella stessa tabella?
Attualmente sto usando qualcosa nello script PHP dopo che i risultati sono stati ottenuti per incanalare quei risultati nei gruppi che voglio, ma se può essere fatto nella query, ciò renderebbe il porting della query ad altri script e linguaggi molto più facile.
Grazie!
DOB <1.980 = vecchio rudere ?! – JohnB
Controlla la mia età e nota che sono un vecchio timer al massimo. – Anthony