mysql - 如何根据 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;
任何帮助表示赞赏。
解决方案
以下可能有效。
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;
推荐阅读
- apache-zeppelin - python解释器中的z.show限制问题
- qt - QML Tableview 根据行内容更改行颜色
- swift - 单击导航栏中的右栏按钮项时打开搜索栏?
- c# - 文本属性更改时如何触发 XAML 元素中的方法
- react-native - 如何从 react-native 中的选项卡堆栈注销到身份验证?
- quickfix - MsgSeqNum 序列和不同的会话
- java - 如何初始化数组列表中的对象
- ruby-on-rails - Rails 通过 2 个键关联
- python - 安装和导入 Python 包的多个版本
- javascript - 将我的选择 ID 传递给路由控制器并显示到另一个刀片文件