2012-03-22 57 views
3

我有一個約15個字段的mysql數據庫表。我想搜索整個字段的字符串輸入的用戶..我不想在我的查詢中使用「或」加入多個字段,因爲它會減慢處理。任何人都可以請用替代方法來幫助我嗎?用多個字段搜索整個數據庫表使用php

+0

你使用這個php類:http://code.google.com/p/anywhereindb/ – mgraph 2012-03-22 10:00:27

回答

4

您可以在任意數量的字段上創建FULLTEXT index。性能應該沒問題(比LIKE好得多)。

例子:

ALTER TABLE table_name ADD FULLTEXT ft_index_name (col1, col2, col3); 

然後查詢:

SELECT * FROM table_name WHERE MATCH(col1, col2, col3) AGAINST ('search_term') 

如果你需要額外的性能,看看Sphinx例如,其功能是作爲一個下拉更換爲原生的MySQL FULLTEXT

3

如果您不想使用OR,那麼最好使用concat來連接所有15個字段,然後使用like搜索指針。這樣的事情:

select * from MyTable 
where concat(col1,col2,col3,col4,col5,col6,col7,col8,col9,col11,col11,col12,col13,col14,col15) 
like '%myval%'; 

但是我不確定性能明智這將比使用OR更好。

相關問題