mysql - 防止使用不同的查询重复行

标签 mysql

假设我有一个产品网格。在这个网格中有一个名为“Scarf XY”的产品。 现在,用户想要搜索具有相似名称的所有项目,因此她在实时搜索框中输入单词“Scarf X”,并且将执行异步请求以从数据库检索与该单词匹配的所有行。 我想阻止新查询再次返回“Scarf XY”行。

有没有一种方法可以“跟踪”已经返回的行,甚至可以从不同的查询中返回?

(对不起我的英语)

忘记提及:从数据库返回的每个项目都保存在本地数组中,这就是为什么每个新查询都可能导致重复条目。

最佳答案

有一种方法可以使用 MySQL 子查询来完成此操作,但如果这是针对站点的,则效率会很低。例如,用户可以输入搜索词然后将其删除。您描述的这样的系统将导致搜索“Scarf XY”的八个 SQL 查询,这会给您的数据库服务器带来不必要的负载。

一种更现代、资源效率更高的方法是向浏览器提供 JSON 数组并使用类似 Typeahead.js 的内容。来自 Twitter 在客户端搜索栏中显示信息。

关于mysql - 防止使用不同的查询重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23983743/

相关文章:

mysql - 如何通过 Laravel Eloquent 模型获取使用 groupBy() 创建的每个组的第一条记录?

java - JDBC 和 MySql 安装配置

PHP图像上传并将图像名称存储到MySQL表列脚本不起作用?

java - Hibernate 相当于这个 MySQL 查询的是什么?

mysql - 我的大型 mysql 表注定要失败吗?

mysql - mariadb 解释过滤器 = 100 即使选择了正确的索引

php - 从 mysql 表返回类别 ID

mysql - 如何对sql中多列的相似值进行选择

mysql - 如何在 mySQL 中计算比率并创建连接表的透视输出?

MySQL 过程 - 如果不存在则插入行