2010-04-22 281 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%'