-7

我的数据库中有一个表 CANDIDATE,它在 MySQL 5.5 下运行,我试图从 xy 包含在名字中的表中获取行,所以我可以在两个查询下运行

SELECT FIRSTNAME FROM candidate WHERE FIRSTNAME REGEXP '^xy.+';
SELECT FIRSTNAME FROM candidate WHERE FIRSTNAME REGEXP '^xy.*';

我得到了相同的结果,所以想在这两个 REGEXP 中获得差异。

4

5 回答 5

4

* 个或多个前面的元素。

+ 一个或多个前面的元素。

于 2013-05-20T11:53:19.847 回答
3

+表示一个或多个,*表示零个或多个

于 2013-05-20T11:53:02.483 回答
2

+导致生成的 RE 匹配前一个 RE 的 1 次或多次重复。ab+ 将匹配 'a' 后跟任何非零数量的 'b';它不会只匹配“a”。
*导致生成的 RE 匹配前面 RE 的 0 次或多次重复,尽可能多的重复。ab* 将匹配 'a'、'ab' 或 'a' 后跟任意数量的 'b'。

于 2013-05-20T11:54:26.537 回答
1

a* 对应于“a”的零次或多次重复

a+ 对应于“a”重复一次或多次

于 2013-05-20T11:55:57.250 回答
1

所以想得到这两个REGEXP的差异。

将名称“xy”添加到您的数据库中。

于 2013-05-20T12:40:07.547 回答