【发布时间】:2023-03-18 19:40:01
【问题描述】:
我有一个名为cards 的表,其中包含相关表brigades 和identifiers。一张卡片可以有多个旅和标识符。我想进行单一搜索,例如'purple king',其中“紫色”是一个旅,“国王”是一个标识符,并找到带有这些旅和标识符的卡片。这个对类似问题https://stackoverflow.com/a/9951200/633513 的回答展示了如何跨多个表进行全文搜索。我想做同样的事情,除了我只想要相关的比赛。这可能吗?
表结构:
Cards: id as INT, title as VARCHAR(50)
Brigades: id as INT, brigade as VARCHAR(50)
Identifier: id as INT, identifier as VARCHAR(50)
加入表格:
CardBrigades: id as INT, card_id as INT, brigade_id as INT
CardIdentifiers: id as INT, card_id as INT, identifier_id as INT
示例标识符:
Angel
Animal
Archer
Army
Assyrian
Babylonian
Based on Prophecy
Beast
Bows, Arrows, Spears, Javelins and Darts
Canaanite
'Capture' in Special Ability
'Censer' in Title
Chief Priest
Child of Leah
Commander
Connected to David
Connected to Demons
'Covenant' in Title
'David' in Title
'David' in Verse
Deacon
Prince
样本旅:
None
Black
Brown
Crimson
Gold (Evil)
Gray
Orange
Pale Green
Multi (Evil)
Blue
Gold (Good)
Green
Purple
Red
Silver
Teal
White
Multi (Good)
Multi
【问题讨论】:
-
该表结构实际上并未显示关系。卡片是否有 Brigades.id 和 Identifier.id 值的列?还是 Cards.id 的 Bridgades 值?似乎有些不对劲。
-
您能提供一些示例数据吗? VARCHAR 字段是否仅包含“紫色”等,或者它们是否还包含您也想要匹配的“紫色心”。
-
@Ilion 抱歉,我忘记了连接表。我用他们更新了问题。
-
@liquorvicar 我用示例数据更新了问题
标签: mysql search full-text-search relevance