让我们说表中的单词是:
我需要匹配起始单词应该在哪里:“ ab as”(包括空格),然后是无穷大(即n个组合或字符的数目)
结果应在2个过滤器下查看:
1)包含空格:以“ ab as”和任何数字开头。附加的单词或字符
结果:
ab as ablxyx pqr tpl
ab as ablmnr
2)排除空格:以“ ab as”和任何数字开头。此字符串附加的字符和单词的数量,不带空格
结果:
ab astest
ab astestabc
结果应该是互斥的。
任何人都可以与我共享Mysql REGEX表达式吗?
您可以为此使用REGEXP
CREATE TABLE textlist (`text` varchar(17)) ; INSERT INTO textlist (`text`) VALUES ('ab astest'), ('ab astestabc'), ('ab as'), ('ablxyx pqr tpl'), ('ab as ablmnr'), ('wasab as ablmnr'), ('vbn ab as abltere') ;
✓✓
SELECT DISTINCT SUBSTR(`text`,POSITION("ab as" IN `text`),LENGTH(`text`)) FROM textlist WHERE `text` REGEXP 'ab as[[:blank:]]';
| SUBSTR(`text`,POSITION(“ ab as” in`text`),LENGTH(`text`))|| :------------------------------------------------- ------- || Ab作为ablmnr || ab asbtere |
SELECT DISTINCT SUBSTR(`text`,POSITION("ab as" IN `text`),LENGTH(`text`)) FROM textlist WHERE `text` REGEXP 'ab as[^[:blank:]]';
| SUBSTR(`text`,POSITION(“ ab as” in`text`),LENGTH(`text`))|| :------------------------------------------------- ------- ||腹部测试|| ab astestabc |
db <>小提琴here