यह एक आम धारणा है कि निर्माण के लिए
b IN (x, y, z)
कि (x, y, z)
एक सेट का प्रतिनिधित्व करता है। ऐसा नहीं होता। तालिका:
दरअसल, यह
(b = x OR b = y OR b = z)
एसक्यूएल है, लेकिन एक डेटा संरचना के लिए केवल वाक्यात्मक चीनी है। यदि आप एक खोज के रूप में खोज टेक्स्ट मानों से पूछना चाहते हैं तो उन्हें एक टेबल में रखें। JOIN
JOIN
स्थिति में LIKE
का उपयोग करके आप अपनी Places
तालिका में अपनी खोज टेक्स्ट तालिका JOIN
कर सकते हैं उदा।
WITH Places (Name)
AS
(
SELECT Name
FROM (
VALUES ('Ballymeade Country Club'),
('Ballymena Candles'),
('Bangers & Mash Cafe'),
('Bangebis')
) AS Places (Name)
),
SearchText (search_text)
AS
(
SELECT search_text
FROM (
VALUES ('Ballymena'),
('Banger')
) AS SearchText (search_text)
)
SELECT *
FROM Places AS P1
LEFT OUTER JOIN SearchText AS S1
ON P1.Name LIKE S1.search_text + '%';
वास्तव में काम कर सकता है, लेकिन regex समर्थन मानक एसक्यूएल नहीं है .. –
इसी तरह के बारे में क्या है? माना जाता है कि – Breezer
'समान' को मानक में 'regexp_like' के साथ प्रतिस्थापित किया जा रहा है। हम देखेंगे। – Donnie