1

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

Soulcalibur
Soul Calibur

然后我有另一行包含此信息

Soulcalibur II
Soulcalibur 2
Soul Calibur II
Soul Calibur 2

现在假设我想查找包含“Soul Calibur”的行,我正在使用:

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

这样做的问题是它返回两行,因为从技术上讲,第二行确实有“Soul Calibur”。在 MySQL 查询中是否有一种方法可以查询 Soul Calibur,它只会在一行上显示包含 EXACTLY Soul Calibur 的字段。在解析换行符后基本上是完全匹配的。

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

4

1 回答 1

0

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

于 2013-02-17T05:23:59.100 回答