gpt4 book ai didi

mysql - 允许 CASE 语句重复匹配

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

如何显示在此 WHERE CASE 语句中匹配的 MatchID 的所有值:

SELECT 
`Word`,
CASE
WHEN `Word` LIKE 'a%' THEN 12
WHEN `Word` LIKE 'b%' THEN 13
WHEN `Word` LIKE 'a%' THEN 14
ELSE -1
END AS MatchID
FROM `Words`

假设我的表包含 a、b 和 c。目前,该表的结果仅显示:

a   12
b 13

我希望它也显示:

a   14

换句话说,我希望 CASE 子句显示所有匹配项,而不仅仅是第一个匹配项。有什么想法吗?

谢谢!

最佳答案

可能有一种更优雅的方式来完成您所要求的操作,但这里有一个可能的解决方案:

SELECT `Word`, 12 AS MatchID FROM `Words` WHERE `Word` like 'a%'
UNION
SELECT `Word`, 13 AS MatchID FROM `Words` WHERE `Word` like 'b%'
UNION
SELECT `Word`, 14 AS MatchID FROM `Words` WHERE `Word` like 'a%'

编辑:如果性能是一个大问题,那么您也可以考虑混合方法;对 a%b% 使用一个带有 CASE 语句的 SELECT,然后将其与另一个 SELECT 结合用于第二个 a%。 p>

关于mysql - 允许 CASE 语句重复匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6891388/

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