2013-02-17 209 views
1

好的,我在InnoDB中有一个表。它有一个名为“spellings”的列,它是一个TEXT字段(不是varchar)。在本专栏中,我有多种拼写方法,每种方式都用换行符分隔。例如其中一列如下:MySQL搜索TEXT字段用于匹配文本,绝对多行

Soulcalibur 
Soul Calibur 

然后,我有另一行使用此信息

Soulcalibur II 
Soulcalibur 2 
Soul Calibur II 
Soul Calibur 2 

现在可以说,我想找到所有包含“剑魂”行,我使用:

SELECT * FROM games WHERE spellings LIKE '%Soul Calibur%' 

的问题,这是它返回两行,因为从技术上第二行确实有“剑魂”。有没有在MySQL查询中查询Soul Calibur的方法,该方法仅显示包含精确灵魂校准的字段。在解析换行符后基本上是完全匹配的。

如果我删除%,它不工作,因为第一行是技术上Soulcalibur\nSoul Calibur

回答

0

我认为你需要使用CHAR(10)换行。所以尝试 像CONCAT('%Soul Calibur',CHAR(10),'%')

+0

这是什么? – 2013-02-17 05:34:31

+0

好的,这不起作用。它会匹配'Soulcalibur',但不匹配'Soul Calibur',因为它没有换行符,因为它是字符串的结尾。 – 2013-02-17 05:41:40

+0

工作,谢谢。 – 2013-02-17 05:57:33