gpt4 book ai didi

mysql - 在 MySQL 中使用 UNION 时如何知道结果来自哪个表

转载 作者:可可西里 更新时间:2023-11-01 07:59:45 25 4
gpt4 key购买 nike

我正在使用联合查询:

SELECT snippet_id, title FROM tbl_snippets WHERE title LIKE ?
UNION
SELECT tag_id, tag FROM tbl_tags WHERE tag LIKE ?
UNION
SELECT category_id, category FROM tbl_categories WHERE category LIKE ?

我如何知道结果来自哪个表?snippet_id、tag_id 和 category_id 没有我可以用来确定结果来源的前缀(如 SN、TG 或 CI)。结果基本上放在一个结果中,所以我真的不知道我的想法是否可能,这就是我来这里问的原因。

最佳答案

为什么不将前缀添加为单独的(计算的)列?

SELECT 'SN' prefix, snippet_id, title FROM tbl_snippets WHERE title LIKE ?
UNION ALL
SELECT 'TA', tag_id, tag FROM tbl_tags WHERE tag LIKE ?
UNION ALL
SELECT 'CA', category_id, category FROM tbl_categories WHERE category LIKE ?

编辑:我还将 UNION [DISTINCT] 更改为 UNION ALL - 原因如下:

  • 如果原始查询对 UNIONUNION ALL 产生不同的结果,引入前缀将改变结果行数。
  • 在大多数情况下,UNION ALLUNION DISTINCT 稍微快一些。
  • 大多数人实际上都希望拥有UNION ALL

关于mysql - 在 MySQL 中使用 UNION 时如何知道结果来自哪个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com