Reputation: 6842
I'm having a problem a dataset I have been given in bad format E.G fullName
column and no breakdown of names I'm wanting to search where any of the names start with a given letter E.G 'J'
So this is my Statement but I just get complaints about unexpected REGEXP
SELECT * FROM `Officers` WHERE `fullName` REGEXP '.*\sJ.*';
Is there any way to do this in MariaDB, unfortunately, the names are not of a fixed word count some are only 2 names others are 6 names long so 4 middle names.
Upvotes: 6
Views: 4604
Reputation: 626960
You may use
REGEXP '\\bJ'
^^^
Here, the \b
is a word boundary that will force a match only when J
is not preceded with a letter, digit or _
.
The \
is doubled because the regex engine expects a literal \
, and two backslashes are required.
Upvotes: 4
Reputation: 6309
Try using something like this:
SELECT * FROM `Officers` WHERE `fullName` REGEXP '[[:<:]]J'
See docs: https://dev.mysql.com/doc/refman/5.7/en/regexp.html
Upvotes: 1