【问题标题】:How could I select a column based on another column in mySQL?如何根据 mySQL 中的另一列选择一列?
【发布时间】:2019-04-24 05:16:13
【问题描述】:

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

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

感谢任何帮助。

【问题讨论】:

    标签: mysql select case case-when


    【解决方案1】:

    以下可能有效。

    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;
    

    【讨论】:

      【解决方案2】:

      我想你想要

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

      【讨论】:

        猜你喜欢
        • 2015-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-29
        • 2020-12-30
        • 1970-01-01
        • 1970-01-01
        • 2014-10-05
        相关资源
        最近更新 更多