php - 查找输入字符串中包含列值的行

标签 php mysql

我准备了一个包含多个条目的电子表格,每行条目提供两列信息。一个是产品名称,另一个是产品的价格。示例如下:

   Product (Column A)        Price (Column B)
1.      Watch                     $100
2.     Mousepad                    $50
3.     Notebook                  $1000

我正在尝试使用 PHP 和 MYSQL 创建一个基于 Web 的数据库。基本的搜索功能是当我在搜索框中输入一个句子时,例如“我有一个 watch 和一个笔记本”,我的数据库中与句子中的某些单词匹配的那些条目将被给出(即第 1 行“ watch ” ”和第 3 行“笔记本”)。 MySQL 是否支持这种搜索,我该如何编写查询来实现这种搜索?

最佳答案

编写一个 SQL 查询来做到这一点并不难。您只需要编写一个 WHERE 子句来搜索字符串中的列值。 MySQL 有一个 LOCATE()可用于搜索子字符串的函数。在您的示例中,您可能有:

SELECT *
FROM myTable
WHERE LOCATE(product, 'I have a watch and a notebook.') <> 0;

请务必注意,正如您将在链接中看到的那样,如果未找到子字符串,locate 将返回 0。

这是一个 SQL Fiddle示例。

关于php - 查找输入字符串中包含列值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30898247/

相关文章:

php - 使用FOR循环消除数组检索到的数字

php - 在一个类方法中开始输出缓冲并在另一类方法中结束它

php - JSON.parse 处的 JSON 输入意外结束

php - mysql select where子查询慢

MySQL - 使用 Join 进行更新突然需要很长时间

php - SQL table1 row_id 不显示 table2 row_id

mysql - SQL 查询优化 select 或 inner join

mysql - 比较两个表并找到匹配的列

mysql - 关于规划mysql表的几个问题

php - 在 foreach() 函数内部,DIV 相互重叠