Anda dapat membungkus string yang cocok dengan Anda dan string yang berisi userid Anda ingin mencocokkan di , pembatas sehingga Anda memastikan Anda cocok dengan userid yang lengkap (daripada secara naif menggunakan LIKE tanpa mempertimbangkan pembatas di sekitarnya dan hanya mencocokkan sebagian userid ). Seperti ini:
SELECT *
FROM "USER" u
WHERE EXISTS (
SELECT 1
FROM special_user su
WHERE ', ' || u.userpeers || ', ' LIKE '%, ' || su.userId || ', %'
)
Yang, untuk data sampel:
CREATE TABLE "USER" ( UserID, UserPeers, Gender ) AS
SELECT 'Mike', 'Tom1, Bob1', 'M' FROM DUAL UNION ALL
SELECT 'John', 'Tom1, Greg1', 'M' FROM DUAL UNION ALL
SELECT 'Sally', 'Mike1, John1', 'F' FROM DUAL UNION ALL
SELECT 'Sara', 'Sally1, Bob1, TimTom1', 'F' FROM DUAL;
CREATE TABLE special_user ( UserID ) AS
SELECT 'Tom1' FROM DUAL UNION ALL
SELECT 'John1' FROM DUAL;
Catatan:Saya mengubah Sally untuk menambahkan rekan TimTom1 yang tidak boleh dicocokkan meskipun Tom1 substring disertakan.
Keluaran mana:
db<>fiddle di sini