Jestem pewien, że widziałem to gdzieś, ale nie mogę znaleźć właściwą terminologię więc mam problemy ...Warunkowe kolumny dla kwerendy oparte na innych kolumnach w MySQL
Powiedzmy, że mieć tabelę z informacjami o użytkowniku (załóżmy też, że został stworzony przez kogoś, kto zarabia więcej niż ja, więc modyfikowanie schematu nie jest opcją.) Wśród różnych kolumn informacji o użytkowniku są kolumny DOB i tytuł pracy. Chcę zapytać, że w oparciu o to, co jest w tych kolumnach, będzie zawierać dodatkową kolumnę o nazwie „Real_Title”, na przykład:
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
zapytania:
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"}
Znam powyżej jest nie tylko źle, ale także zakodowane naprawdę nieskuteczne, ale chciałem wpaść na pomysł.
Czy istnieje sposób, bez użycia połączeń, do wypełnienia kolumny na podstawie informacji w jednej lub więcej innych kolumn w tej samej tabeli?
Obecnie używam czegoś w skrypcie PHP po uzyskaniu wyników, aby przekazać te wyniki do grup, które chcę, ale jeśli można to zrobić w zapytaniu, spowoduje to przeniesienie zapytania do innych skryptów i języków dużo łatwiej.
Dzięki!
DOB <1980 = Old Fart ?! – JohnB
Sprawdź mój wiek i zauważ, że jestem w najlepszym razie starszym zegarkiem. – Anthony