如果我尝试在mysql数据库中搜索一个值,并且字符串值中包含点,查询返回0行。例如:当在字符串中用点(。)搜索值时,MySQL查询返回0行
SELECT * FROM table WHERE `username`='marco.polo' --> 0 rows
SELECT * FROM table WHERE `username` LIKE '%.polo%' --> 0 rows
SELECT * FROM table WHERE `username` LIKE 'polo' --> Success
将服务器和数据库移到另一个地方后出现这种情况。我知道这个点是一组扩展正则表达式,但它不应该适用于平等或LIKE运算符,仅仅因为我没有在查询中使用REGEXP。
我测试了我的本地数据库相同的查询,它工作正常。 在mysql中可以有一个特殊的设置来对待点的方式与通常不同吗?
经过几个小时的调试,我发现该表的默认字符集是亚美尼亚语(创建数据库时创建者可能没有注意,因此首先在列表中被选中)。运行几个ALTER语句并更改为utf8后,所有内容都开始工作。 感谢您的帮助! – cen