mysql - 通过计算返回 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 |
|---------------------|------------------|----------------------|------------------|
我可以单独返回所有内容,但是如何将它们组合成一个查询结果?
解决方案
这是你想要的吗?
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_
. 这显着降低了参数与现有列名冲突的可能性。
推荐阅读
- mysql - 在重复键上更新或插入表
- java - 实时文件搜索
- visual-studio - 无法调试 xamarin.forms 应用程序。当我运行它只部署应用程序
- c - 可以使用 execvp 和 fork 退出和更改目录的简单 Shell
- python - 如何使用 SQLAlchemy 更改 group_concat() 的默认分隔符?
- matlab - 在 Matlab 中运行并行函数
- javascript - 如何使用“确定最高数字”和“重置”按钮确定三个用户输入数字中的最大值
- jsf - bean 属性作为参数
- c# - 如何使用 servicestack 批处理 sql 调用
- php - 查找表达式中所有用 (" ") 括起来的短语和不带 (" ") 的单词