mysql - 我在 mysql 上使用带有 setlist 的正则表达式得到奇怪的答案

标签 mysql sql regex

我的学生表中有 3 个姓“kim”的学生(seolhyun kim、irene kim 和 jisoo kim),我创建了一个包含学生全名的 Student_name 列。当我尝试使用正则表达式和集合列表 [] 获取特定学生的姓名时,我没有从这 3 个中获取我想要的姓名。

当我使用“where Student_name regexp '[seolh] kim';”时,返回的是 Irene kim 和 Jisoo kim 名字,而不是 Seolhyun kim。如果我只使用“where Student_name regexp '[se] kim';”,则会返回 Irene kim 的名字,如果我使用 Seolhyun 的全名“where Student_name regexp '[seolhyun] kim';”,则会返回所有 3 个女性的名字返回。

SELECT roll_number, student_name
FROM student
WHERE student_name REGEXP '[SE] KIM';

最佳答案

[seolh] 表示字母 s、e、o、l 或 h 之一。

因此,[seolh] kim 匹配姓氏为 kim 且名字以这些字母之一结尾的人。

Irene 以 e 结尾,Josoo 以 o 结尾,所以这些匹配。 Seolhyun 以 n 结尾,因此不匹配。

您可能需要(seolh\S*) kim

关于mysql - 我在 mysql 上使用带有 setlist 的正则表达式得到奇怪的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260250/

相关文章:

php - 即使在 PDO 准备语句和绑定(bind)参数之后也无法转义数组内的单引号

php - 如何查看所有团队成员的帖子

regex - 从正则表达式中获取子字符串

javascript - 按句点分割字符串 '.'

PHP mysql PDO 扩展类错误

SQL 查询的 PHP 输出

php - 如何将php-mysql数据与jquery合并淡化数据

php - MySQL - 选择用户不拥有的所有行

mysql - 在单个 sql 查询中选择或选择

允许空格和句点的 Python scraper 正则表达式