mysql - MySQL 中 CASE 语句中的 REGEXP

标签 mysql sql regex

SELECT title,
CASE WHEN title REGEXP '[0-9]' THEN CONCAT(sid,'X',gid,'X',parent_qid,'#',title)
ELSE CONCAT( sid, 'X', gid, 'X',parent_qid ,title) END AS survey_title
FROM `lime_questions`
WHERE question like '%Vision%'

如果我的上述案例陈述有误,有人可以纠正我吗?我的意图是,当我的表中的标题只有数字时,我想按照查询中所示进行连接。但是当我的正则表达式也不匹配时,我的 sql 代码没有像上面写的那样串联。请纠正我。

Result Set:

title    survey_title
8      21712X102X4180#8
MM08   83628X37X1742#MM08

Expected Output:

title    survey_title
8      21712X102X4180#8
MM08   83628X37X1742MM08

最佳答案

SELECT title,
CASE WHEN title REGEXP 'ˆ[0-9]+$' THEN CONCAT(sid,'X',gid,'X',parent_qid,'#',title)
ELSE CONCAT( sid, 'X', gid, 'X',parent_qid ,title) END AS survey_title
FROM `lime_questions`
WHERE question like '%Vision%'

关于mysql - MySQL 中 CASE 语句中的 REGEXP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19841654/

相关文章:

php - 如何根据id显示两个表中的数据

sql - 加速大表和小表之间的内连接

python - 以不同的顺序检索多个捕获组?

java - 通过 JsonPath 中的正则表达式过滤值

PHP RegEx 防止重复字符

php - 如何在PHP中的表上显示空行(当从数据库中选择时)

php - 获取下一个自动增量

mysql - 当我尝试检查子字符串中的 int 值时,我不断收到语法错误?

mysql - 如何比较两组

mysql - MariaDB 服务器在 600 秒后超时客户端连接