gpt4 book ai didi

"CASE WHEN"中的 MYSQL 正则表达式

转载 作者:可可西里 更新时间:2023-11-01 08:06:03 25 4
gpt4 key购买 nike

我想在这样的 CASE WHEN 上下文中使用 REGEXP:

SELECT
CASE title
WHEN REGEXP '^(The Matrix|Riddick|American Pie)$' THEN (
'Movie'
) ELSE (
'FOOO'
)
END
FROM `movies`

但这是不可能的。如您所见,我想在这里匹配不同的字符串。

问候,菲利克斯

最佳答案

这确实是可能的,只要语法正确。 REGEXP 需要左侧和右侧操作数,因此请使用 CASE 的其他语法,其中完整表达式放在 WHEN 之后。

SELECT
CASE
WHEN `title` REGEXP '^(The Matrix|Riddick|American Pie)$' THEN 'Movie'
ELSE 'FOOO'
END AS column_alias
FROM `movies`

但是,如果您没有在正则表达式中使用任何可变元素,则这可能比在索引列上进行精确匹配效率低得多。换句话说,您不需要使用您给出的示例的正则表达式。

SELECT
CASE
WHEN `title` IN ('The Matrix', 'Riddick') THEN 'Movie'
ELSE 'FOOO'
END AS your_column_alias
FROM `movies`

关于 "CASE WHEN"中的 MYSQL 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19708556/

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