cari

Rumah  >  Soal Jawab  >  teks badan

Ungkapan biasa untuk memadankan perkataan

Saya mempunyai skrip di mana saya cuba memadankan nama kerja baharu dengan nama kerja sedia ada dalam pangkalan data.

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

Jadual Staging.TMP_OC1 mempunyai rekod untuk kedudukan baharu, dalam kes ini, Software Developer,USA. Saya ingin memadankannya dengan tajuk kerja sedia ada pangkalan data "Pembangun Perisian". Kod regex di atas berfungsi untuk beberapa jawatan tetapi bukan yang lain. Sila bantu membangunkan rancangan yang lebih komprehensif.

Saya menggunakan mysql V8.

P粉957723124P粉957723124228 hari yang lalu874

membalas semua(1)saya akan balas

  • P粉509383150

    P粉5093831502024-04-07 00:55:41

    • Anda tidak perlu menguji permulaan/akhir rentetan; ini adalah "sempadan perkataan".

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

    • 8.0 memerlukan garis serong ke belakang dua kali ganda dalam beberapa kes.

    Ini mungkin berkesan:

    REGEXP CONCAT('\b', j.Description, 's?\b')

    balas
    0
  • Batalbalas