gpt4 book ai didi

php - 联合所有的子查询计数

转载 作者:行者123 更新时间:2023-11-30 21:55:21 25 4
gpt4 key购买 nike

我的查询从 3 个表中选择数据,将结果设置为“标题”(一个表的“描述”列是我需要查看的列)。我还创建了一个结果“doctype”,其值表示在哪个表中找到它以供以后用于前端过滤器。然后它按以下方式订购:

  1. 结果以搜索词开头
  2. 结果在中间某处包含搜索词
  3. 结果以搜索词结尾

我需要的是获取查询中每个子查询的计数:

SELECT * FROM (
SELECT Title as title, 'docs' AS 'doctype' FROM docs
WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%'
UNION ALL
SELECT Title as title, 'sheets' AS 'doctype' FROM sheets
WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%'
UNION ALL
SELECT Description AS title, 'pres' AS 'doctype' from presentations
WHERE status IN ('publish', 'draft', 'review') AND Description LIKE '%' :searchterm '%'
) FINAL
ORDER BY
CASE
WHEN title LIKE :searchterm '%' THEN 1
WHEN title LIKE '%' :searchterm THEN 3
ELSE 2
END
LIMIT 300

同时确认可以在 ORDER BY 中使用别名('title')。

最佳答案

在您的子查询中添加一个计数字段和一个 groupby 子句

已更新

SELECT 
(SELECT count(*) FROM docs WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%') as 'count_docs'
,(SELECT count(*) FROM sheets WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%') as 'count_sheets'
,(SELECT count(*) FROM presentations WHERE status IN ('publish', 'draft', 'review') AND Description LIKE '%' :searchterm '%') as 'count_pres'
, FINAL.*
FROM (
SELECT Title as title, 'docs' AS 'doctype' FROM docs
WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%'
UNION ALL
SELECT Title as title, 'sheets' AS 'doctype' FROM sheets
WHERE status IN ('publish', 'draft', 'review') AND Title LIKE '%' :searchterm '%'
UNION ALL
SELECT Description AS title, 'pres' AS 'doctype' from presentations
WHERE status IN ('publish', 'draft', 'review') AND Description LIKE '%' :searchterm '%'
) as FINAL
ORDER BY
CASE
WHEN title LIKE :searchterm '%' THEN 1
WHEN title LIKE '%' :searchterm THEN 3
ELSE 2
END
LIMIT 300

关于php - 联合所有的子查询计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45419464/

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