SQL 搜索字符串中的字符串


SQL search for string within string

我想在我的网站上创建一个搜索函数,它将返回字符串中的字符串。例如:如果 SQL 数据库中有一条记录,其中列的值是"我的名字是哈利波特",那么用户可以搜索"哈利 P"或"ott"或"我的名字",该记录将出现在搜索结果中。

在你的

SQL中使用它:

SELECT * FROM `table` WHERE title LIKE '%$search_word%'
select * from your_table
where instr(some_column, 'string_to_search') > 0

使用 LIKE 函数。

SELECT * FROM myTable WHERE myName LIKE '%Harry P%'
SELECT * FROM myTable WHERE myName LIKE '%ott%'
SELECT * FROM myTable WHERE myName LIKE '%My Name%'

在这里,我假设myName是数据库中的字段名称,myTable是表名称。

在 PHP 中,您的查询应该是

SELECT * FROM myTable WHERE myName LIKE '%$yourWord%'

如果表是/将很小,那么带有 LIKE '%word%' 的语句就可以了。

虽然您可能想使用MyISAM表来使用全文索引,但这在InnoDB中也是可能的。以这种方式实现它会有点困难,但它将MyISAM提供的高性能文本搜索与InnoDB的所有好处(事务,行级锁定等)相结合。