我如何 select 一个基于 mySQL 中另一列的列?
How could I select a column based on another column in mySQL?
以下脚本运行良好。但我想用一行而不是三行来写。 “尺寸”是从我的主程序传递过来的,它在这里用于测试。只是我想根据尺寸获得价格。
Table 列:
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;
感谢任何帮助。
我想你想要
SELECT
IF(@size == 'SMALL', PRICE_SMALL_PRICE, PRICE_LARGE_PRICE) AS ITEM_PRICE
FROM prices;
以下可能有效。
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;
以下脚本运行良好。但我想用一行而不是三行来写。 “尺寸”是从我的主程序传递过来的,它在这里用于测试。只是我想根据尺寸获得价格。
Table 列: 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;
感谢任何帮助。
我想你想要
SELECT
IF(@size == 'SMALL', PRICE_SMALL_PRICE, PRICE_LARGE_PRICE) AS ITEM_PRICE
FROM prices;
以下可能有效。
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;