@GoodPirojok

Как автоматический получать результат 3-го столбца исходя из первых двух?

Подскажите, в таблице есть 3 столбца
FinalPrice, Price, Sale

Как сделать так, чтобы при Sale - пустом, FinalPrice был равен значению Price, но если мы добавим значение в Sale, то FinalPrice был бы равен формуле Price * Sale?

Т.е. что бы по поиску в таблице он искал в FinalPrice, а не вычислял его только перед отображением на страницу.
  • Вопрос задан
  • 63 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
ALTER TABLE `table`
  ADD COLUMN `FinalPrice` FLOAT 
    AS (IF(`Sale` IS NULL, `Price`, `Price`*`Sale`)) STORED;
Ответ написан
Комментировать
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Не ясно что значит "пустой". NULL или 0?
SELECT 
Price, Sale, 
( CASE
    WHEN Sale IS NULL THEN Price
    ELSE (Price * Sale)
END ) AS FinalPrice
FROM table


SELECT 
Price, Sale, 
IF( Sale IS NULL, Price, (Price * Sale) ) AS FinalPrice
FROM table
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы