首页 > 解决方案 > 如何根据 mySQL 中的另一列选择一列?

问题描述

以下脚本工作正常。但我想用一行而不是三行来写。“尺寸”是从我的主程序传递过来的,在这里用于测试。我只是想根据尺寸获取价格。

表列: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;

任何帮助表示赞赏。

标签: mysqlselectcasecase-when

解决方案


以下可能有效。

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;

推荐阅读