【问题标题】:MySQL - "exact match" against a valueMySQL - 对一个值“完全匹配”
【发布时间】:2019-09-21 08:15:24
【问题描述】:

我在摸索一些东西,在互联网上搜索了一天后,我决定问你这个问题。

我有一个表 TAG,其中包含 2 个字段 tag_id 和 tag,我正在尝试将 TAG 的记录与特定字符串完全匹配,但我无法完全匹配,只能部分匹配。 例如,我在 TAG 中有 2 条记录:

tag = world
tag = world news

我正在触发以下查询:

Select tag,tag_id from TAG where match (tag) against ('Hello world')

我只想选择标签“世界”,但两条记录都在弹出。

如果我开枪

Select tag,tag_id from TAG where match (tag) against ('Hello world news')

我想同时弹出两条记录。

有什么方法可以实现吗? 提前谢谢你:)

【问题讨论】:

  • 为什么要使用全文搜索?另请注意,against 的值是搜索字符串/查询,而不是要搜索的源文本。所以看起来您正在以错误的顺序进行搜索。你想做什么?
  • 我想获取包含在可变语句中的特定表中的所有记录。例如,我的表中有以下记录: - 世界 - 世界新闻 - 测试 我想编写一个查询,该查询将浏览该表的所有记录并返回包含针对特定句子的记录。例如,如果我要与“Hello world”进行比较,我只想从我的表中获取记录“world”

标签: mysql match-against


【解决方案1】:

在标签列中搜索包含 abc 的任何内容

Select tag,tag_id from TAG where tag like '%abc%'

仅在包含 abc 的标签列中搜索,即仅等于 abc

 Select tag,tag_id from TAG where tag = 'abc'

检查以下链接以比较字符串 https://www.w3schools.com/sql/sql_like.asp

【讨论】:

  • 对不起,但它没有做我想要的,我会通过评论我的问题来尝试更明确。谢谢你的时间:)
【解决方案2】:

我想我实际上找到了使用 LOCATE 的方法:

SELECT tag, LOCATE(tag, 'world news') from TAG where LOCATE(tag, 'world news') > 0

你怎么看?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-28
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多