问题一:匿名登录占用,Mariadb 数据库root用户无法登录
[ ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)]
如果你的Linux控制台是匿名登录的话(也就是说运行 mysql -uroot -pxxxxx 无法登录到mysql的话)
解决方法:
打开Navicat,运行下面的指令
grant all privileges on *.* to root@localhost identified by 'xxxxxx';
原因:
匿名登录占用了。【参考文章】
问题二:解决mysql查询,in条件参数为带逗号的字符串,查询结果错误。
场景如下:(in语句中如果是一段字符串的话)。
IN语句字符串.png解决方法:使用FIND_IN_SET函数
SELECT pt.`code`,pt.`name` FROM `poi_type` pt WHERE FIND_IN_SET(pt.`code`,'2106,2103,2104');
效果如下图:
FIND_IN_SET.png注意事项:
FIND_IN_SET是全表查询,而IN是部分表查询的(可以使用索引的)。
【参考】Mysql中FIND_IN_SET()和IN区别简析。
网友评论