Regular expression to match words
P粉957723124
P粉957723124 2024-04-06 21:24:04
0
1
867

I have a script where I am trying to match new job names with existing job names in the database.

SELECT 
a.title AS JobTitle,
j.Description  AS MatchedJobTitle,
f.Description      AS Family,
p.ShortDescription AS ColourComplexity,
j.IsCustomerFacing,
j.JobTitleID
FROM JobTitle j
CROSS JOIN Staging.TMP_OC1 a
INNER JOIN JobFamily f ON j.JobFamilyId = f.JobFamilyID
INNER JOIN Pathways p ON f.PathwaysID = p.PathwaysID        
WHERE a.title REGEXP CONCAT('([[:<:]]|^)', j.Description, '[s]?([[:>:]]|$)');

The Staging.TMP_OC1 table has one record for the new position, in this case Software Developer,USA. I want to match it to the database's existing job title "Software Developer". The regex code above works for some positions but not others. Please help develop a more comprehensive plan.

I am using mysql V8.

P粉957723124
P粉957723124

reply all(1)
P粉509383150
  • You don't need to test the beginning/end of the string; these are "word boundaries".

  • MySQL 8.0 uses \b as two word boundaries instead of [[:<:]] and [[:>:]]

  • In some cases, 8.0 requires doubling backslashes.

This may work:

REGEXP CONCAT('\b', j.Description, 's?\b')
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template