Как установить один столбец в таблице MySQL равным сумме нескольких других?
У меня в таблице базы данных есть столбец, отвечающий за общее количество "очков" пользователя, а так же есть столбцы, отвечающие за "очки" в различных областях. Мне надо, чтобы столбец всех очков был равен сумме всех других столбцов с очками в разных областях. Спасибо
Лучше хранить, потому что суммируемых столбцов очень много, лучше в базе данных сделать один общий столбец, чем в коде прописывать длиннющие запросы, я считаю.
Чем не нравиться получать сумму в запросе?
Через sum
Если надо хранить сумму: сделайте колонку с суммой и заполните ее запросом:
update `table` set `ball_sum`=`col1`+`col2`
В `ball_sum` - будет сумма по колонкам `col1`+`col2`
Как вариант написать тригер/хранимую функцию, но я Вам не рекомендую.
БД нужно для хранение данных. А Вы туда стремитесь бизнеслогику толкнуть. Представьте, что Вас попросили что-то доработать в неком проекте. Вы посмотрели структуру БД, поняли задачу. Все написали. И в процессе записи данных в БД, понимаете, что пишите в БД одни данные, а по факту там другие. Думаю Вы крайне будете этим опечалены....)))
Для правильного вопроса надо знать половину ответа
Вариант 1 - получать `col1`+`col2`+`col3`... as `sum` в запросе.
Вариант 2 - создать view.
Вариант 3 - использовать триггер на добавление/изменение строки пересчитывая сумму.