Как я могу выбрать столбец на основе другого столбца в MySQL? - PullRequest
0 голосов
/ 21 ноября 2018

Следующий скрипт работает нормально.Но я хочу написать это одной строкой, а не тремя.«Размер» передается из моей основной программы и используется здесь для тестирования. Просто я хочу получить цену в зависимости от размера.

Столбцы таблицы: LISTING_ID, PRICE_LARGE_PRICE, PRICE_SMALL_PRICE.

SET @Size = 'SMALL';

SELECT 
    PRICE_LARGE_PRICE,PRICE_SMALL_PRICE
INTO
    @PRICE_LARGE_PRICE,@PRICE_SMALL_PRICE
FROM
    prices
WHERE
    PRICE_LISTING_ID = 60;

SET @ITEM_PRICE = (CASE @Size WHEN 'REGULAR' THEN @PRICE_LARGE_PRICE 
WHEN 'SMALL' THEN @PRICE_SMALL_PRICE 
ELSE null 
END); 

SELECT @ITEM_PRICE;

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Следующие могут работать.

SET @Size = 'SMALL';

SELECT 
    PRICE_LARGE_PRICE,
    PRICE_SMALL_PRICE, 
    CASE WHEN @Size = 'REGULAR' THEN PRICE_LARGE_PRICE
         WHEN @Size = 'SMALL' THEN PRICE_SMALL_PRICE
    END AS ITEM_PRICE 
INTO
    @PRICE_LARGE_PRICE,
    @PRICE_SMALL_PRICE, 
    @ITEM_PRICE 
FROM
    prices
WHERE
    PRICE_LISTING_ID = 60;
0 голосов
/ 21 ноября 2018

Я думаю, что вы хотите

SELECT 
  IF(@size == 'SMALL', PRICE_SMALL_PRICE, PRICE_LARGE_PRICE) AS ITEM_PRICE 
FROM prices;
...