我運行SQL查詢的MySQL服務器用語... IN子句
...
where name in ("term1","term2","term3")
,我想每一個詞從一個文本文件中獲得的術語列表線。我怎樣才能做到這一點?
如果這個術語列表會變大嗎?例如10K。這會有效嗎?或者我應該使用其他方法?可能是臨時表並加入?數據庫是隻讀的。
我運行SQL查詢的MySQL服務器用語... IN子句
...
where name in ("term1","term2","term3")
,我想每一個詞從一個文本文件中獲得的術語列表線。我怎樣才能做到這一點?
如果這個術語列表會變大嗎?例如10K。這會有效嗎?或者我應該使用其他方法?可能是臨時表並加入?數據庫是隻讀的。
我不是那麼熟悉MySQL,但我看到這樣的事情,你可以在一個表,你在你的問題建議加載一個文本文件: -
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, column2, column3);
,然後使用連接獲取數據。
詳情here。
我認爲你最好的選擇可能是把它讀入專門用於這個查找的臨時表/表。
通過這種方式,您可以爲表格編制索引,並使用內部連接/在子查詢中的位置。
通常,使用WHERE ... IN
語句在幾百個/千項之後變得非常緩慢。另外,如果表是隻讀的,那麼你將無法添加索引以使其更快,所以,就像我說的那樣,我會建議一個帶有連接的臨時表。
你有PHP或Perl嗎?兩者都可以很好地工作,並且有一點嵌套循環瘋狂 – CheeseConQueso 2010-03-23 22:48:06
Perl會很好。你會展示一段代碼作爲答案嗎? – yuk 2010-03-23 23:44:52