如何在mySQL脚本中为变量分配列值?

如何在mySQL脚本中为变量分配列值?,mysql,Mysql,我有以下脚本,但它始终返回null SELECT @PRICE_LARGE_PRICE = PRICE_LARGE_PRICE, @PRICE_SMALL_PRICE = PRICE_SMALL_PRICE FROM prices WHERE PRICE_LISTING_ID = 60; SET @ITEM_PRICE = (CASE Size WHEN GivenLargeSizeName THEN @PRICE_LARGE_PRICE WHEN

我有以下脚本,但它始终返回null

    SELECT 
    @PRICE_LARGE_PRICE = PRICE_LARGE_PRICE,
    @PRICE_SMALL_PRICE = PRICE_SMALL_PRICE
FROM
    prices
WHERE
    PRICE_LISTING_ID = 60;

SET @ITEM_PRICE = (CASE Size WHEN GivenLargeSizeName THEN @PRICE_LARGE_PRICE 
WHEN GivenSmallSizeName THEN @PRICE_SMALL_PRICE 
ELSE null 
END); 
这里的问题是

@PRICE_LARGE_PRICE = PRICE_LARGE_PRICE,
@PRICE_SMALL_PRICE = PRICE_SMALL_PRICE
表正确返回PRICE\u LARGE\u PRICE和PRICE\u SMALL\u PRICE,但赋值不起作用。因此,该案失败

感谢您的帮助。

您需要使用:

注意,您需要确保查询只返回一行数据,必要时使用LIMIT 1

SELECT 
    @PRICE_LARGE_PRICE:=PRICE_LARGE_PRICE,
    @PRICE_SMALL_PRICE:=PRICE_SMALL_PRICE
FROM
    prices
WHERE
    PRICE_LISTING_ID = 60;

在mysql中,只需在等号之前添加冒号即可

谢谢。是的,它总是返回一条记录。清单I'd是主键。我明天会检查你的密码。那很可爱,我也会试试。
SELECT 
    @PRICE_LARGE_PRICE:=PRICE_LARGE_PRICE,
    @PRICE_SMALL_PRICE:=PRICE_SMALL_PRICE
FROM
    prices
WHERE
    PRICE_LISTING_ID = 60;