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 GivenSmallSizeName THEN @PRICE_SMALL_PRICE 
ELSE null 
END); 

这里的问题是

@PRICE_LARGE_PRICE = PRICE_LARGE_PRICE,
@PRICE_SMALL_PRICE = PRICE_SMALL_PRICE

表正确返回 PRICE_LARGE_PRICE 和 PRICE_SMALL_PRICE,但分配不起作用。因此 CASE 失败。

感谢任何帮助。

最佳答案

您需要使用SELECT ... INTO :

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

请注意,您需要确保查询仅返回一行数据,如有必要,请使用LIMIT 1

关于mysql - 如何将列值分配给 mySQL 脚本中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386887/

相关文章:

mysql - 选择表中只有一个值的行

javascript - 如何获取 ID 作为值和名称以显示在 dropdownlist php 中

php - Mysql自增问题

mysql - 选择加入地点

java - 如何使用 JDBC 获取整行作为对象数组

php - SQL WHERE 如果字段被序列化

mysql - 将mysql列记录插入具有不同列名的第二个表

javascript - 使用 jQuery Ajax 和 Mysql 生成 HTML

php - 在 symfony 的两个表中使用具有不同字段的非相关表进行分页

java - MySQL 从左连接中选择一列中具有特定数量的不同值的行,但没有总行数限制