MySQL kolumna której wartość będzie sumą z dwóch innym kolumn.

0

Witam. Czy w bazie danych MySQL można tak ustawić jedną kolumnę gdzie wartością będzie suma z dwóch innym kolumn w tej samej tabeli?

Dla przykładu.
Mam tabelę o nazwie "votes" z kolumnami: id, post_id, plus, minus.
I chciałbym dodać ostatnią kolumną która jako wartość przyjmie sumę z kolumn plus i minus. Oczywiście suma ta musiała by się na bieżąco aktualizować po zmianach w/w kolumnach.

Czy da się tak? A jeśli tak to jak to zrobić?

Dziękuję

1

Poczytaj o kolumnach wirtualnych.

0

OK. To chyba to czego potrzebuję. Chociaż jakoś nie mogę znaleźć informacji jak dodać "Expresion" dla kolumny wirtualnej w phpmyadmin. Jakaś podpowiedź?

0

Nie wiem, nie korzystam z PMA - nikt nie broni Ci jednak zwyczajnie napisać to zapytanie ręcznie.

1

A zwykłe zapytanie nie rozwiązuje Twojego problemu?

select plus + minus suma from votes

Jaką zaletę ma posiadanie dodatkowej wirtualnej kolumny dla tego przypadku?

0

Udało mi się też w końcu dodać tą wirtualną kolumnę. Przez phpmyadmin jakoś nie wchodziło a z kodu bez problemu.

Nie rozwiązuje (albo ja nie wiem jak by to miało wyglądać) bo zapytanie do bazy które chcę wykonać jest bardziej złożone niż prosty select.
W momencie pobierania votes muszę już mieć sumę z obu kolumn gdyż według tej "sumy" sortuje a także pobieram tylko 10 najwyższych wyników i do nich dołączam artykuły o id zawartym w tabeli votes.

1

Można sortować po wyrażeniu ( w szczególności po sumie wartości), masz przykład na http://sqlfiddle.com/#!9/e21014/3

0
yarel napisał(a):

Można sortować po wyrażeniu ( w szczególności po sumie wartości), masz przykład na http://sqlfiddle.com/#!9/e21014/3

Wow to genialne :). Wielkie dzięki za tą informację.

W sumie, to zadałem jedno pytanie a dwóch nowych rzeczy się nauczyłem :)

Pozdrawiam serdecznie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1