gpt4 book ai didi

MySQL:找到搜索字符串的字段列表?

转载 作者:行者123 更新时间:2023-11-29 11:24:08 24 4
gpt4 key购买 nike

当我使用 MySQL LIKE 搜索多个字段时,有没有办法知道在哪个字段中找到了该字符串?

SELECT * FROM DB WHERE 标题(如“%search%”)或描述(如“%search%”)或标签(如“%search%”)

我知道CASE WHEN:

选择*,案例
当标题如“%search%”时,那么“标题”
[...]
END AS 发现于
哪里[...]

但最终,如果在多个字段中找到该字符串,我想要一个以逗号分隔的字段列表。

这可能吗?

编辑以澄清:

当在标题和描述中找到搜索词时,我希望我的字段“found_in”为“标题,描述”。

最佳答案

一种可能的方法是一系列 UNIONed 查询,每个字段一个。每个返回它所在的字段的名称,然后将其用作子查询并对结果执行 GROUP_CONCAT:-

SELECT  id,
title,
description,
tags,
GROUP_CONCAT(field_found)
FROM
(
SELECT 'title' AS field_found,
id,
title,
description,
tags
FROM DB
WHERE title like "%search%"
UNION
SELECT 'description' AS field_found,
id,
title,
description,
tags
FROM DB
WHERE description LIKE "%search%"
UNION
SELECT 'tags' AS field_found,
id,
title,
description,
tags
FROM DB
WHERE tags LIKE "%search%
) sub0
GROUP BY id,
title,
description,
tags

关于MySQL:找到搜索字符串的字段列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38503222/

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