2010-04-22 211 views
1

如果可以在表中搜索其名稱中包含搜索術語的記錄嗎?SQL搜索包含術語

謝謝

+0

你的意思是表或列的名稱叫什麼名字? – JYelton 2010-04-22 15:02:09

回答

4
SELECT * FROM `my_table` WHERE name LIKE '%my_search_term%' 

SELECT * FROM `my_table` WHERE CONTAINS(name, 'search') 

但要注意的是,LIKE語句是非常昂貴的。如果你通過大量的文本搜索,你可能會考慮使用Sphinx作爲例子。

+0

我以前沒有聽說過獅身人面像。這裏是一個鏈接:http://sphinxsearch.com/ – JYelton 2010-04-22 15:16:20

+0

是的,它應該已經鏈接它。這是非常重要的,你從MySQL填充你的獅身人面像索引(例如,我工作的地方,我們每2小時更新一次獅身人面像),並且它非常簡單。 PHP中有一個Sphinx客戶端:http://php.net/manual/en/book.sphinx.php 使用起來非常簡單,它比MySQL的文本搜索更快。 – Mikushi 2010-04-22 15:38:59

2

當然。還有就是CONTAINS斷言:

... WHERE CONTAINS(name, 'search-term') 

也有LIKE運營商和某些DBMS允許正則表達式。

1

這聽起來像你在找什麼是LIKE

-- Get all people with phone numbers starting with 920 
SELECT * FROM People WHERE PhoneNumber LIKE '920%'