SQL搜索包含项

6

是否可以在表格中搜索名称包含搜索词的记录?

谢谢


你是指表的名称还是列的名称? - JYelton
3个回答

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

或者

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

但是请注意,LIKE语句非常耗费资源。如果你需要搜索大量文本,你可能需要考虑使用Sphinx。


是的,应该把它链接起来。它非常强大,你可以从MySQL(例如,在我工作的地方,我们每2小时更新一次Sphinx)中填充你的Sphinx索引,之后就非常简单了。 PHP中有一个Sphinx客户端:http://php.net/manual/en/book.sphinx.php 非常容易使用,并且对于文本搜索来说比MySQL更快。 - Mikushi

2
当然。这里有一个叫做CONTAINS的谓词:
... WHERE CONTAINS(name, 'search-term')

此外,还有LIKE运算符,一些DBMS允许使用正则表达式。


1

听起来你需要的是类似于

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接