2011-07-18 37 views
1

我正在嘗試進行查詢,其中LIKE可以匹配行中的任何字段。SQL:如果搜索匹配該行中的任何值,則使用LIKE返回行

換句話說,我不想顯式設置列名來匹配每個LIKE條件。

所以,像這樣:

SELECT * FROM mytable WHERE any_field_value LIKE 'str%' 

這樣的:

SELECT * FROM mytable WHERE col_a LIKE 'str%' OR col_b LIKE 'str%' 

等。

當然,不是一個不尋常的要求?有人能給我看光嗎?

回答

2

其實這是不正確的。它可以完成,假設你已經設置了全文索引。 再次假設我們正在處理sql服務器。

http://msdn.microsoft.com/en-us/library/ms142488.aspx

我應該指出,因爲它不是鏈接的文檔中很清楚,你可以以搜索所有全文索引的列在表中指定*而不是列名。

編輯: 全文搜索也可以在mysql中使用。但我不清楚*是否可以與它一起使用。

+0

+1。我假設全文索引被排除在外。 –

+0

Thanks @Telerian,我正在使用MySQL ...但由於我對動態SQL或全文索引不太瞭解(任何事情),我只會堅持「不能輕鬆做到」的答案。 :) – Ben

+0

我給你添加mysql標籤的一個很好的理由。 ;) –

相關問題