首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将硬编码值包含到mysql查询的输出中?

问如何将硬编码值包含到mysql查询的输出中?
EN

Stack Overflow用户
提问于 2020-01-24 23:00:54
回答 3查看 201关注 0票数 0

我创建了一个MySQL sproc,它返回3个独立的结果集。我正在下游实现npm包,以执行sproc,并在json中获得一个带有3个结果集的结果。我需要过滤json结果集的能力,这些结果集是根据每个结果集中的某种类型的指示符返回的。例如,如果我想从专门处理供应商的json响应中获得结果集,那么我可以使用类似于以下内容的某种类型的js过滤器:

代码语言:javascript
复制
var supplierResultSet = mySqlJsonResults.filter(x => x.ResultType === 'SupplierResults');

我认为Server提供了在如下SQL结果集中包含硬编码列值的能力:

代码语言:javascript
复制
select
'SupplierResults',
*
from
supplier

但是,这种方法在MySQL b/c MySQL工作台中似乎是无效的,它告诉我sproc语法是无效的,并且不允许我保存更改。您知道,如果在MySQL中有类似我正在尝试实现的目标是可能的,那么您是否可以推荐其他方法,帮助我实现我的最终目标:在每个结果集中包括某种类型的固定指示符,以便为json响应的下游过滤提供一个句柄?

EN

回答 3

Stack Overflow用户

发布于 2020-01-24 23:09:16

如果我正确地跟踪了您,只需在*前面加上表名或别名:

代码语言:javascript
复制
select 'SupplierResults' hardcoded, s.* from supplier s

据我所知,这是SQL标准。只有在select *子句中没有添加其他表达式时,selec才是有效的;Server对此不严格,但大多数其他数据库都遵循该标准。

为包含硬编码值的列分配一个名称也是一个好主意(我在上面的查询中将其命名为hardcoded )。

票数 2
EN

Stack Overflow用户

发布于 2020-01-24 23:31:55

更具体而言,在您的查询中,您需要这样做。

代码语言:javascript
复制
select
'SupplierResults',
supplier.*  -- <-- this
from
supplier

尝尝这个

代码语言:javascript
复制
create table a (f1 int);
insert into a values (1);
select 'xxx', f1, a.* from a;

基本上,如果select中还有其他字段,则前缀'*‘加上表名或别名

票数 0
EN

Stack Overflow用户

发布于 2020-01-25 00:00:06

在MySQL中,您可以简单地将*放在第一位:

代码语言:javascript
复制
SELECT *, 'SupplierResults'
FROM supplier

dbfiddle演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59904760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档