我想在这样的上下文中使用 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`