如何从标签列表的标签栏中准确选择标签?

发布于 2024-12-15 11:58:17 字数 591 浏览 3 评论 0原文

如何从标签列表的标签栏中准确选择标签?

例如,下面是使用查询创建的表,但是我想缩小搜索范围,

page_id         tags
1               tile-1,tile-12,tile-10
2               tile-1,tile-10
3               tile-12,tile-10
4               tile-15,tile-16

我想要的结果是仅包含 tile-1 的页面,

page_id         tags
1               tile-1,tile-12,tile-10
2               tile-1,tile-10

但是我正在处理的查询返回所有这些,包括 tile-12tile-10 等。

SELECT*
FROM (...) AS k
WHERE k.tags LIKE '%tile-1%'

我可以不使用 LIKE 吗?

How can I select the tag accurately from the tag column with the list of tag?

For instance below is table created using a query, but then I want to narrow down my search,

page_id         tags
1               tile-1,tile-12,tile-10
2               tile-1,tile-10
3               tile-12,tile-10
4               tile-15,tile-16

the result I am after is the pages with tile-1 only,

page_id         tags
1               tile-1,tile-12,tile-10
2               tile-1,tile-10

But the query I am working on below returns all of them, including, tile-12, tile-10, etc.

SELECT*
FROM (...) AS k
WHERE k.tags LIKE '%tile-1%'

May I should not use LIKE?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁的新欢旧爱 2024-12-22 11:58:17

我建议将架构更改为 page_id, tag。这样你的数据应该看起来像这样

1           tile-1
1           tile-12
1           tile-10
2           tile-1
2           tile-10
3           tile-12
3           tile-10
4           tile-15
4           tile-16

然后你可以通过一个简单的查询来完成所有这些,

SELECT * FROM table WHERE tag = 'title-1';

这样你就不必搜索表(表扫描) - 一旦表有更多行(可扩展的解决方案),这将成为一个问题。
其次,您可以在标签列上使用索引,以使搜索速度超快。

I suggest to change schema to page_id, tag. so that your data should look like this

1           tile-1
1           tile-12
1           tile-10
2           tile-1
2           tile-10
3           tile-12
3           tile-10
4           tile-15
4           tile-16

Then you can do all this with a simple query,

SELECT * FROM table WHERE tag = 'title-1';

This way you do not have to search through the table (table scans) - which will become an issue once table has more rows (scalable solution).
Second you can use index on the tag column, to make searches super fast.

决绝 2024-12-22 11:58:17

由于您使用逗号作为分隔符,因此您的 LIKE 语句必须包含逗号:

SELECT * FROM table WHERE tags LIKE '%title-1,%';

Since you're using comma as the delimiter, your LIKE-statement would have to include the comma:

SELECT * FROM table WHERE tags LIKE '%title-1,%';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文