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.
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: