匹配單字的正規表示式
P粉957723124
P粉957723124 2024-04-06 21:24:04
0
1
733

我有一個腳本,我試圖將新的職位名稱與資料庫中的現有職位名稱進行匹配。

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學習者快速成長!