【问题标题】:User search multiple values with sql like query用户使用类似查询的 sql 搜索多个值
【发布时间】:2021-05-13 01:52:52
【问题描述】:

使用 PHP 和数据库,我有一个简单的搜索查询语句:

SELECT * FROM products WHERE LOWER(product_title) LIKE '%$search%';

例如产品标题:“红苹果树”

例如搜索 1: '

红苹果

成功输出标题

例如搜索 2:

'红树'

不输出任何东西,但单词在标题中。

这其中的问题在哪里?

【问题讨论】:

  • LIKE 查找完全匹配。听起来您想要全文搜索。在您正在使用的数据库中查看该功能的文档。
  • 是的,我搜索了全文搜索,但是关于这个的内容太多了。我专门使用 phpMyAdmin
  • phpMyAdmin 不是数据库,它是访问 mysql 的 UI。从dev.mysql.com/doc/refman/8.0/en/fulltext-search.html开始
  • 当然,它们在表中,但是'%Red Apples Tree%'意味着在乞讨中和'tree'这个词之后可以出现其他词,所以它适用于'gold红苹果树”或“小红苹果树”,但不适用于“红橙苹果树”
  • “我搜索了全文搜索,但内容太多了” - 还有?仅仅因为一个主题可能有点复杂,并不能免除你首先去尝试正确阅读它的责任。

标签: mysql search full-text-search full-text-indexing


【解决方案1】:

您要查找的是“全文搜索”

以下是您对 MySQL 的问题的示例:

示例查询

SELECT * FROM products WHERE MATCH(product_title)
AGAINST("Red Apples Tree" IN NATURAL LANGUAGE MODE)

阅读更多关于MySQL Full text search

【讨论】:

  • 我做了,但是这个网站不想展示,很成问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
相关资源
最近更新 更多