首页 > 解决方案 > 通过计算返回 2 个额外的查询列

问题描述

我想做的可能很简单,但是我有一张桌子:

|---------------------|------------------|
|          ID         |       price      |
|---------------------|------------------|
|          1          |         30       |
|---------------------|------------------|

我在此过程中使用的查询:

PROCEDURE `get_info`(IN itemID VARCHAR(255), IN itemQuantity VARCHAR(255)) 
BEGIN
SELECT * from table where ID = itemID;
END

现在我希望查询返回 2 个额外的列,其中“数量”是程序输入“itemQuantity”和额外的列“totalPrice”,即 itemQuantity*price。

所以表格看起来像这样:

|---------------------|------------------|----------------------|------------------|
|          ID         |       price      |       quantity       |     totalPrice   |
|---------------------|------------------|----------------------|------------------|
|          1          |         30       |          2           |        60        |
|---------------------|------------------|----------------------|------------------|

我可以单独返回所有内容,但是如何将它们组合成一个查询结果?

标签: mysql

解决方案


这是你想要的吗?

PROCEDURE `get_info`(
    IN in_itemID VARCHAR(255),
    IN in_itemQuantity VARCHAR(255)) 
BEGIN
    SELECT t.*, in_itemQuantity as itemQuantity, in_itemQuantity * t.price as totalprice
    FROM table t
    WHERE t.ID = in_itemID;
END;

请注意,我更改了参数的名称,在它们前面加上in_. 这显着降低了参数与现有列名冲突的可能性。


推荐阅读