आप जिस स्ट्रिंग से मेल खा रहे हैं और userid . वाली स्ट्रिंग दोनों को लपेट सकते हैं आप , . में मिलान करना चाहते हैं सीमांकक ताकि आप सुनिश्चित करें कि आप एक पूर्ण userid . से मेल खाते हैं (मूर्खता से LIKE . का उपयोग करने के बजाय आसपास के सीमांककों पर विचार किए बिना और केवल आंशिक userid . से मेल खाते हुए ) इस तरह:
SELECT *
FROM "USER" u
WHERE EXISTS (
SELECT 1
FROM special_user su
WHERE ', ' || u.userpeers || ', ' LIKE '%, ' || su.userId || ', %'
)
जो, नमूना डेटा के लिए:
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;
नोट:मैंने Sally बदल दिया है एक सहकर्मी जोड़ने के लिए TimTom1 Tom1 . के बावजूद इसका मिलान नहीं होना चाहिए सबस्ट्रिंग शामिल है।
कौन सा आउटपुट:
db<>fiddle यहां