mysql中case when嵌套regexp
时间: 2023-11-16 22:55:50 浏览: 204
可以使用以下语法:
```
SELECT column_name,
CASE
WHEN column_name REGEXP 'pattern1' THEN 'match1'
WHEN column_name REGEXP 'pattern2' THEN 'match2'
ELSE 'nomatch'
END
FROM table_name;
```
其中,`column_name` 是要匹配的列名,`pattern1` 和 `pattern2` 是正则表达式模式,`match1` 和 `match2` 是对应的匹配结果,`nomatch` 是当没有匹配时的默认结果。
例如,假设有一个表 `users`,其中有一个名为 `email` 的列,我们想要根据不同的邮箱后缀来分类。可以使用以下查询语句:
```
SELECT email,
CASE
WHEN email REGEXP '@gmail\\.com$' THEN 'Gmail'
WHEN email REGEXP '@yahoo\\.com$' THEN 'Yahoo'
ELSE 'Other'
END AS email_provider
FROM users;
```
这将返回一个包含 `email` 和 `email_provider` 两列的结果集,其中 `email_provider` 列根据邮箱后缀分类。
相关问题
mysql中regexp
MySQL中的REGEXP是一个正则表达式操作符,用于在查询中进行模式匹配。它可以用于WHERE子句中的条件表达式,以确定某个列的值是否符合指定的模式。
例如,假设我们有一个名为"users"的表,其中有一个名为"name"的列。我们想要筛选出名字以"A"开头的用户,可以使用REGEXP操作符进行模式匹配。
示例查询语句如下:
SELECT * FROM users WHERE name REGEXP '^A';
这将返回名字以"A"开头的所有用户的记录。在正则表达式中,'^'表示以指定字符开头。
除了REGEXP,MySQL还提供了其他正则表达式相关的操作符,例如REGEXP_LIKE和REGEXP_REPLACE。它们可以用于更复杂的模式匹配和替换操作。
需要注意的是,MySQL中的正则表达式是基于POSIX标准的,具体的语法和模式匹配规则可以参考MySQL官方文档。
mysql REGEXP
REGEXP 是 MySQL 中用于正则表达式匹配的关键字。它可以用来筛选满足某种规则的数据,比如匹配特定的字符串或者数字等。在使用 REGEXP 时,需要使用正则表达式的语法来编写匹配规则,然后将其应用到需要查询或操作的数据中。例如,可以使用 SELECT 语句和 REGEXP 关键字来查询某个表中满足特定匹配规则的数据行。具体的使用方法可以参考 MySQL 官方文档中有关 REGEXP 的内容。
阅读全文