gpt4 book ai didi

php - 在 MySQL 数据库中搜索标签

转载 作者:行者123 更新时间:2023-12-01 00:25:51 26 4
gpt4 key购买 nike

我正在努力创建一个系统,允许用户上传项目并为它们添加“标签”,以帮助它们在搜索中可见。目前,我有一个像这样工作的数据库:

id|title|tags

tags 是用户自己输入的以逗号分隔的标签列表。我读到这是一种糟糕的方法,但是拥有一个标签表并将每个 ID 与项目记录一起存储基本上是一回事。

我如何运行搜索以首先返回最相关的结果?我现在正在使用它,它有效,但不按相关性排序:SELECT * FROM items WHERE tags LIKE '%$tag%' LIMIT 0,20"; where $tag 只是一个标签,没有逗号(它在循环内)。

最佳答案

有一个标签表和存储每个 ID 以及项目记录基本上是同一件事

没有。不。不。这绝对不是一回事。

你使用“逗号分隔列表”版本,并尝试提出查询来解决这些问题:

  1. 从所有标题中删除标签 ID #7
  2. 有多少标题使用标签 #87

使用正确规范化的表格:

  1. 从 users_tags WHERE tag_id=7 中删除
  2. SELECT count(*) FROM users_tags WHERE tag_id = 87

你的版本:

  1. UPDATE users_tags SET tags=....在这里插入大量难看的字符串操作...
  2. SELECT count(*) FROM users_tags WHERE tag_id=87 OR tag_id='87,%' OR tag_id LIKE '%,87,%' or tag_id LIKE '%,87'

看出区别了吗?

关于php - 在 MySQL 数据库中搜索标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14528763/

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