首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用一个标签查找域名?

问使用一个标签查找域名?
EN

Stack Overflow用户
提问于 2011-01-28 07:14:14
回答 3查看 62关注 0票数 1

我在table1中有带有tags的域名

tags用逗号表示。示例

代码语言:javascript
复制
domain        tags
facebook.com  facebook,social,networking,friends,community

我想通过一个标签搜索域,比如“社交”,那么我该怎么做呢?

我将这个查询用于多个标签,但它不适用于单个标签。

代码语言:javascript
复制
SELECT * FROM table1 WHERE MATCH (tags) AGAINST ('social')

我已经在table1中启用了全文搜索

如何使用单个标签查询并获取social相关域名的信息

EN

回答 3

Stack Overflow用户

发布于 2011-01-28 07:17:29

这应该会对你有所帮助:

代码语言:javascript
复制
select * from table1 where tags like '%social%'
票数 0
EN

Stack Overflow用户

发布于 2011-01-28 07:22:54

正如其他人所建议的那样,社交查询可能会得到您想要的结果,但请记住,所有这些示例都将匹配social标记和其中包含短语“LIKE”的任何标记(例如,如果您有一个像social-networking或ice-cream-social这样的标记,那么它将匹配所有这些标记)。

你真的应该规范化这个表结构。删除tags列并引入另一个表。就像DomainTag一样。

代码语言:javascript
复制
DomainTag
-------------
DomainId
TagId

具有多个标签的域将在DomainTag中产生多行。要查找具有给定标记的域,可以对DomainTag执行查询,如果DomainId不是domain,则加入到Domain,或者直接返回域名。

票数 0
EN

Stack Overflow用户

发布于 2011-01-28 07:29:05

注意:其他人也有类似的建议,但它没有针对全文查询进行优化,因为它将扫描整个表。

你可能想看看MATCH.. AGAINST的手册,看看你是否遗漏了什么。例如:

  • 如果50%的行包含标签

,那么它将根本不会出现在索引中(太常见了)

但真正的问题很可能是您应该指定模式

代码语言:javascript
复制
SELECT * FROM dom2 WHERE MATCH (tags) AGAINST ('social' in boolean mode)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4823087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档