有2個表emailinfo(id,email)和keywordinfo(id,關鍵字)。 emailinfo包含80,000行,keywordinfo包含2000行。LIKE使用子查詢返回多行
我想要emailinfo表中沒有包含來自keywordinfo表的關鍵字的電子郵件。
我想不喜歡在多行
我一直都關鍵字keywordinfo表
現在我已經獲取所有從emailinfo表,該表不包含從keywordinfo表的所有關鍵字的郵件狀態。
我想查詢像下面,
select email
from emailinfo
where email not like % (select keyword from keywordinfo)
我曾嘗試下面的查詢
SELECT email
FROM emailinfo
join keywordinfo on email like '%' + keyword +'%'**
,但它不是給我正確的結果,是非常緩慢的。
你的第二個查詢會給你確實是會包含關鍵字的郵件。對於那些不使用Romil建議的NOT EXISTS查詢。對內部子字符串的任何查詢可能會很慢,因爲沒有索引是有用的。如果某些關鍵字比其他關鍵字更普遍,那麼可能有一些方法可以哄騙那些首先被檢查的關鍵字,但是您必須進行一些設計更改。 –
感謝您回覆me.please告訴我一些有效的方法來處理這種情況,因爲我嘗試了所有的答案,仍然需要2分鐘來運行我的查詢。 –
@UdaySatardekar,緩慢的速度可能是由於數據庫設計和您正在使用的數據量。 –