Regulärer Ausdruck zum Abgleichen von Wörtern
P粉957723124
P粉957723124 2024-04-06 21:24:04
0
1
964

Ich habe ein Skript, in dem ich versuche, neue Jobnamen mit vorhandenen Jobnamen in der Datenbank abzugleichen.

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

Die Tabelle Staging.TMP_OC1 enthält einen Datensatz für die neue Position, in diesem Fall Softwareentwickler, USA. Ich möchte es mit der in der Datenbank vorhandenen Berufsbezeichnung „Softwareentwickler“ abgleichen. Der obige Regex-Code funktioniert für einige Positionen, für andere jedoch nicht. Bitte helfen Sie mit, einen umfassenderen Plan zu entwickeln.

Ich verwende MySQL V8.

P粉957723124
P粉957723124

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

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

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

这可能有效:

REGEXP CONCAT('\\b', j.Description, 's?\\b')
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage