作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在这样的 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/
我是一名优秀的程序员,十分优秀!