php - 根据搜索查询从数据库返回行

标签 php mysql sql

我有一个具有以下架构的产品表:

产品(项目名称 VARCHAR(50),itemid INT(10));

示例记录如下所示(itemnameitemid):

  • 黑莓曲线 3g(黑色),1
  • 三星 ACE,3
  • 黑莓曲线 3g(白色),2
  • 苹果 iPhone 4 32GB(黑色),4

现在假设用户在网站的搜索框中输入查询并显示相应的结果。即,如果用户输入 blackberry,则应显示 Blackberry 手机

我正在寻找以下问题的答案:

  1. 如何将搜索文本与项目进行匹配?例如:用户可以 在搜索框中输入blackberry 那么如何搜索呢? 我应该搜索 blackberry 单词作为 itemname 的子字符串吗 上表的哪一栏?
  2. 如果用户输入两个单词,例如:apple 32gb。现在如果我使用 上面提到的子字符串方法将不起作用,因为表中没有以 apple 32gb 作为子字符串的行。这种情况下如何搜索?
  3. 如果用户输入非常通用的搜索文本,例如:mobiles。在这种情况下,应显示所有手机。在这种情况下,将 itemname 作为子字符串进行匹配也不起作用。
  4. 用户可以输入搜索文本:apple 32gb black color。在这种情况下,应该显示32GB容量、黑色的苹果产品。

我知道实现 100% 正确的搜索是不可能的。我只是在寻找提示/如何继续。我正在使用 PHP、MySQL、Apache。

最佳答案

这是什么样的数据库,如果MySQL可以在字段上启用全文搜索,然后只需一个简单的查询就可以得到你期望的结果。

关于php - 根据搜索查询从数据库返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053429/

相关文章:

mysql - MySQL中列名 "order"的替代品

sql - 错误 : permission denied for sequence cities_id_seq using Postgres

Mysql:为每个日期执行查询

php - 从mysql中下拉选择数据

php - Yii2 多对多与 self - 通过 GridView 过滤(没有属性?)

php - My SQL 按 2 个字段排序,每次更改一个字段

mysql - 使用 LIMIT 时 phpMyAdmin Hanngs

sql - 如何选择 MySQL 中局部变量中保存的列?

php - php中AJAX调用require_once未执行

javascript - 从 JavaScript cookie 读取 PHP cookie