如何根据 mySQL 中的另一列选择一列?

Posted

技术标签:

【中文标题】如何根据 mySQL 中的另一列选择一列?【英文标题】:How could I select a column based on another column in 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;

感谢任何帮助。

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于如何根据 mySQL 中的另一列选择一列?的主要内容,如果未能解决你的问题,请参考以下文章

如何将一列的列值组合到 MySQL 中的另一列中?

如何根据python中的另一列自动添加日期?

如何根据 PySpark 数据框的另一列中的值修改列? F.当边缘情况

如何根据R中的另一列获取一列的平均值

如何将约束添加到 MYSQL 中的列仅以保存已存在于同一表的另一列中的值? [复制]

如何根据另一列值将一列分成多个?