Mysql:如何获取自定义结果集作为 select 语句输出

标签 mysql sql database

我有以下 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/

相关文章:

.net - 使用 .NET 连接到 MySQL 数据库时出错

SQLite 使用 collat​​e nocase 加速选择

sql - 如何将复杂的 SQL 转换为 HQL 或 JPQL 查询

python - (Python) 如何编辑 SQL 数据库中的现有行?

php - 安装多个 WordPress 副本时是否需要创建单独的数据库?

mysql - 有什么区别

PHP 不包括连接信息,怎么了?

mysql对单个数据库表的单个查询

SQL Server : DDL trigger, 控制表创建

database - Sitecore - 将项目从 Web 移动到 Master(包?)