Expression régulière pour faire correspondre les mots
P粉957723124
P粉957723124 2024-04-06 21:24:04
0
1
879

J'ai un script dans lequel j'essaie de faire correspondre les nouveaux noms de tâches avec les noms de tâches existants dans la base de données.

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

La table Staging.TMP_OC1 contient un enregistrement pour le nouveau poste, dans ce cas Software Developer,USA. Je souhaite le faire correspondre au titre de poste existant de la base de données « Développeur de logiciels ». Le code regex ci-dessus fonctionne pour certaines positions mais pas pour d'autres. S'il vous plaît, aidez-nous à élaborer un plan plus complet.

J'utilise MySQL V8.

P粉957723124
P粉957723124

répondre à tous(1)
P粉509383150
  • Vous n'avez pas besoin de tester le début/la fin de la chaîne ; ce sont des « limites de mots ».

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

  • 8.0 nécessite de doubler les barres obliques inverses dans certains cas.

Cela pourrait fonctionner :

REGEXP CONCAT('\b', j.Description, 's?\b')
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal