gpt4 book ai didi

php - 删除相同 "KeyWord"模式的上一条记录

转载 作者:行者123 更新时间:2023-11-29 21:35:36 25 4
gpt4 key购买 nike

我有一个带有后端 PHP 和 mysql 的 android 应用搜索功能

目前在用户按键时我正在向服务器发送请求以获取数据。 (实时建议)。

每次按键时,我都会将用户输入插入到服务器。

问题是在一天结束时,要查看用户搜索内容的统计数据非常困难,因为存在如下冗余数据。

用户搜索:Apple移动设备 在每次按键时将请求发送到服务器,如下所示

  1. 一个
  2. 应用
  3. 应用程序
  4. 申请
  5. 苹果

问题是:如何从mysql中删除记录[1到4]并只保留[5]

注意:在移动应用程序中保留相同的实时搜索(按键)功能。

enter image description here

其他注意事项:应用正在使用 REST API 通过 HTTP POST 发送数据一次可能有 1000 名用户搜索该应用程序。 [最后一条记录可能并不总是同一查询的一部分]

我通过发送 12 个字符长度的唯一 key 以及搜索查询解决了这个问题,在一天结束时,我通过保留每个 key 的最新记录来清理查询

最佳答案

它可以通过将冗余数据保存在数据库中来帮助您。假设最初数据库中没有任何用于实时搜索的记录。

假设最终用户正在搜索术语“Apple 6s”。现在假设他输入了关键字“A”现在根据您当前的逻辑,您正在请求后端服务器将该术语保存在数据库中。

假设您的用户搜索词保存表名称目前为“user_searches”。因此,默认情况下该表是空的。当用户键入关键字“A”时,记录将插入此表中,id(主键)为 1。

下次尝试时,当用户再次键入关键字“p”时,请求将使用字符串“Ap.”发送到服务器。您不会将其保存为新记录,而是会更新已使用字符串“A”保存的上一条记录。因此记录 id 1 的新值为“Ap”

您需要更新记录 id 1,除非且直到字符串中存在空格。因此,一旦您收到字符串中的空格,您就必须插入新的记录(在我们的例子中是数据库中 ID 为 2 的第二条记录)。因此,根据这个逻辑,如果用户输入字符串“Apple 6s”,您将在数据库中获得如下记录

id 搜索术语1 个苹果2 6秒

因此,每当您将记录插入数据库时​​,您都必须在响应中发送该记录的最新 ID。

您必须考虑到,如果用户 A 正在搜索术语“Apple”,那么最初该用户的记录 ID 将为 1同时,如果用户B也在搜索术语“Nokia”,那么它将有记录id 2用于更新。所以你必须根据设备 ID 来跟踪搜索词。为此,您可以在 user_searches 表中再添加一列作为“deviceId”,以便您可以轻松跟踪各个设备搜索词。

希望这会对您有所帮助。

关于php - 删除相同 "KeyWord"模式的上一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34942792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com