我正在建立一个标记系统,我需要检索类似的标签,所以当用户选择“某些东西”或“sométhing”或“sömething”或“sometothing”等时,他会得到所有表中的匹配行。
如果我在场上使用utf8_general
或utf8_unicode
,那将是一块蛋糕。我可以
SELECT * FROM tags WHERE tag LIKE 'some thing'
但是,我需要在该表中使用utf8_bin
。那么,我该怎么办?我不是一个非常大的mysql专家。我想我应该使用CAST()或CONVERT(),但我不确定如何。
第二部分,获取某些东西,某些东西,某些东西等等,是另一个问题,但我想我可以用正则表达式单独解决它
编辑:解决方案 我认为搞乱所有这些转换和正则表达可能不是最好的方法。相反,我将使用我的框架的方法并生成给定标记的URL“名称”并将其存储在同一个数据库行中。
答案 0 :(得分:2)
是的,转换: -
mysql> select convert( "söme thing" using utf8) = convert( "some thing" using utf8); +------------------------------------------------------------------------+ | convert( "söme thing" using utf8) = convert( "some thing" using utf8) | +------------------------------------------------------------------------+ | 1 | +------------------------------------------------------------------------+
但我认为使用utf8_bin
没有任何好处处理标签搜索时,您可以考虑存储