匹配单词的正则表达式
P粉957723124
P粉957723124 2024-04-06 21:24:04
0
1
559

我有一个脚本,我试图将新的职位名称与数据库中的现有职位名称进行匹配。

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]?([[:>:]]|$)');

Staging.TMP_OC1 表有一条记录,即新职位,在本例中为 Software Developer,USA。 我想将其与数据库现有的职位名称“软件开发人员”相匹配。 上面的正则表达式代码适用于某些职位,但不适用于其他职位。 请协助制定一个更全面的计划。

我使用的是mysql V8。

P粉957723124
P粉957723124

全部回复(1)
P粉509383150
  • 您不需要测试字符串的开头/结尾;这些是“单词边界”。

  • MySQL 8.0 使用 \b 作为两个字边界,而不是 [[:<:]][[:>:]]

  • 在某些情况下,8.0 需要将反斜杠加倍。

这可能有效:

REGEXP CONCAT('\b', j.Description, 's?\b')
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!