我遇到了一个问题,我收到了格式错误的EG fullName
列的数据集,而且没有我希望搜索任何名称以给定字母开头的名称细分EG 'J'
所以这是我的陈述,但我只是抱怨有意外的REGEXP
SELECT * FROM `Officers` WHERE `fullName` REGEXP '.*\sJ.*';
有没有办法在MariaDB中执行此操作,遗憾的是,这些名称不是固定字数,有些只有2个名字,其他有6个名字,所以有4个中间名。
答案 0 :(得分:3)
您可以使用
REGEXP '\\bJ'
^^^
此处,\b
是一个字边界,仅当J
前面没有字母,数字或_
时才会强制匹配。
\
加倍,因为正则表达式引擎需要文字\
,并且需要两个反斜杠。 \b
在这里工作,而不是[[:<:]]
,因为MariaDB使用PCRE正则表达式引擎。
答案 1 :(得分:1)
尝试使用以下内容:
SELECT * FROM `Officers` WHERE `fullName` REGEXP '[[:<:]]J'