我有以下 Mysql 查询 -
选择 ('GOOGLE.COM',
'MSN.COM',
'雅虎网站',
'YouTube.COM',
'BING.COM',
'FACEBOOK.COM',
'LIVE.COM',
'微软.com',
'维基百科.ORG',
'LINKEDIN.COM')作为来自 Dual 的域;
我期待以下结果集。
'GOOGLE.COM'
'MSN.COM'
'YAHOO.COM'
'YOUTUBE.COM'
'BING.COM'
'FACEBOOK.COM'
'LIVE.COM'
'MICROSOFT.COM'
'WIKIPEDIA.ORG'
'LINKEDIN.COM'
但我收到错误操作数应包含 1 列
。
如何修复我的查询以便获得正确的结果?
最佳答案
如果您希望每个值一条记录,可以使用union all
:
select 'GOOGLE.COM' domain
union all select 'MSN.COM'
union all select 'YAHOO.COM'
union all select 'YOUTUBE.COM'
union all select 'BING.COM'
union all select 'FACEBOOK.COM'
union all select 'LIVE.COM'
union all select 'MICROSOFT.COM'
union all select 'WIKIPEDIA.ORG'
union all select 'LINKEDIN.COM'
在其他 RDMBS 中,例如 Postgres 或 SQL Server,这将非常简单:
SELECT domain
FROM ( VALUES
('GOOGLE.COM'),
('MSN.COM'),
('YAHOO.COM'),
('YOUTUBE.COM'),
('BING.COM'),
('FACEBOOK.COM'),
('LIVE.COM'),
('MICROSOFT.COM'),
('WIKIPEDIA.ORG'),
('LINKEDIN.COM')
) AS t(domain);
但是MySQL不支持这种语法。解决方法是创建一个表,然后您可以将其链接到查询中:
CREATE TABLE tmp (domain VARCHAR(50));
INSERT INTO tmp(domain) VALUES
('GOOGLE.COM'),
('MSN.COM'),
('YAHOO.COM'),
('YOUTUBE.COM'),
('BING.COM'),
('FACEBOOK.COM'),
('LIVE.COM'),
('MICROSOFT.COM'),
('WIKIPEDIA.ORG'),
('LINKEDIN.COM')
;
关于Mysql:如何获取自定义结果集作为 select 语句输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59165251/