当前位置: 首页 > 面试题库 >

如何在MySQL中连接整个结果集?

鲍国兴
2023-03-14
问题内容

我正在尝试以下查询:

SELECT A,B,C FROM table WHERE field LIKE 'query%'
UNION
SELECT A,B,C FROM table WHERE field LIKE '%query'
UNION
SELECT A,B,C FROM table WHERE field LIKE '%query%'
GROUP BY B ORDER BY B ASC LIMIT 5

那是三个查询卡在一起,有点儿。但是,返回的结果集将反映查询3的结果,而不是查询1的结果。

有什么方法可以对它们进行优先级排序,以使查询#1的结果全部相同,查询#2的结果全部相同,然后查询#3的结果全部相同?我现在还不想在PHP中执行此操作(更不用说必须控制在第一个查询中显示的结果而不在第二个查询中显示等等)。


问题答案:

也许您应该尝试包括第四列,说明它来自的表,然后对其进行排序和分组:

SELECT A,B,C, "query 1" as origin FROM table WHERE field LIKE 'query%'
UNION
SELECT A,B,C, "query 2" as origin FROM table WHERE field LIKE '%query'
UNION
SELECT A,B,C, "query 3" as origin FROM table WHERE field LIKE '%query%'
GROUP BY origin, B ORDER BY origin, B ASC LIMIT 5


 类似资料:
  • 我的数据库中有一个小特例,我需要从两个具有一对一关系的不同表中获取数据,以获得有用的结果。获取看起来像这样: 当然,我在实际代码中使用了-这只是一个示例。我的问题是是否以及如何将jOOQ中获取的数据写入POJO。我不确定是否有办法让jOOQ为我生成这个POJO,但如果我必须自己编写它,我假设我需要像适配器这样的东西以及像作为数据类型的转换器。 我看到有可能出现RecordMapperProvide

  • 我看到的mysql表如下所示: 用户信息 id |用户id |电话号码|信息|方向|创建于 用户 id |名称 我想'组由'user_messages两次和UNION的结果。我为什么要这么做?因为user_id有时有一个有效的用户ID(不是'-1'),所以我按它分组,如果它有-1,则按phone_number分组。 我也想左加入结果与用户表以获得用户名的情况下user_id设置为一个有效的用户 我

  • 问题内容: 找不到解决方案来执行以下操作: 如何在PostgreSQL中做到这一点? 问题答案: 快速而肮脏: 是表的别名,并非严格需要。您也可以使用原始表名。但是,如果您具有相同名称的列,则该列具有优先权。 因此,代表表的行类型,该行类型将自动强制为输出的文本表示形式。 我还添加了一个显式的强制转换, 使其 在内部也可以使用-如果您想对其进行任何处理,… 是SQL标准的Postgres缩写,您也

  • rank ▲ ✰ vote url 80 336 196 470 url 如何连接MySQL? 在python程序里如何链接MySQL数据库? 连接MYSQL需要3步 1 安装 你必须先安装MySQL驱动.和PHP不一样,Python只默认安装了SQLite的驱动.最常用的包是MySQLdb但是用easy_install安装很困难. 对于Window用户,你可以获取MySQLdb的exe. 对于L

  • 问题内容: 这是我要运行的示例代码: 有没有一种方法可以运行此方法而又不会从MySQL收到“ Too many connections”错误?我已经知道我可以以其他方式处理连接或拥有连接池。我只想了解如何正确关闭sqlalchemy的连接。提前致谢! 问题答案: 这是正确编写该代码的方法: 也就是说,是连接 工厂 和连接 池 ,而不是连接本身。当您说时,连接将 返回到Engine内的连接池 ,而实

  • 问题内容: 我创建它使用GROUP_CONCAT来连接的结果从数据类型的产品列的查询视图在一个名为列。问题是mysql截断了concat_products列的值。phpMyAdmin表示concat_products列的数据类型为 餐桌产品: concat_products_vw查看: 根据mysql手册 VARCHAR列中的值是可变长度的字符串, 长度可以指定为MySQL 4.0.2之前的1到2