如何在mySQL脚本中为变量分配列值?
我有以下脚本,但它始终返回null如何在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
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;