2013-02-06 9 views
1

在过去将近十年的项目中,我们使用html实体在MYSQL数据库中编码了非政治标记。所有这些图片今天都很棒,但尽可能地保持原样。使用这个数据库的应用程序实现了一个搜索功能,我的问题是当搜索到的字符串包含一个变音标记时,搜索无法正常工作。像:"für"如何匹配MYSQL中的编码变音标记?

简化MySQL查询看起来是这样的:

SELECT kunstwerk. * , kategorie.published, kategorie.bezeichnung 
FROM kunstwerk 
LEFT JOIN kategorie ON SUBSTRING(kategorie, 1, 7) = kategorie_Nr 
WHERE published = 'true' 
AND published_veto <> 'false' 
AND MATCH (titel_DE) 
AGAINST (
    '+f&uuml;r ' 
    IN BOOLEAN MODE 
) 
ORDER BY kategorie 

我的问题是,它匹配任何包含"&uuml;"不管周围人物的"f&uuml;r"

这是什么原因?

+0

你能尝试包装术语在引号? ''+“f ü r”''' –

+0

@Pekka完美,就是这样。请让这个答案。 –

回答

1

我不是100%确定这里会发生什么,但是mySQL显然在控制字符&;上窒息。 (我怀疑它最终只搜索uuml部分)。

不管怎样,包裹在引号内会有所帮助:

AGAINST (
    '+"f&uuml;r" ' 
    IN BOOLEAN MODE 
)