< Mysql left join 重复多条记录问题 >
mysql left join 后存在多条重复的数据记录,问题出在了left join 中存在一对多的关系。而上网上一般的解决方法是使用Group By 去重,但使用Group By一般会引发一些问题,比如排序。 在我们要使用分页查询的时候使用Group By会出现很多问题,而且5.7比使用Group By也有些问题,需要配置一些东西。 所以我觉的在能不用Group By的时候尽量不要用Group By。 最好的解决办法就是找出一对多的那个表,先把多的那个表使用Group By合并,如要要排序记得,先排序后再Group By, 把一对多的表子查询为一堆一后再进行left  join就不会出现重复的数据了
2019-03-12
< mysql group by 和 order by 一起用失效 >
我自己写了一个前端错误监控系统。 前端有各种报错,后台就会自动发邮件通知、 这里就会遇到同一个错误可能很多人遇到,或者同一个人遇到很多次。 这样同一个错误就会有很多次报错。 当管理员进入后台时,看到很多同一个错误的报错,这很明显不人性化。 于是我就设计成,同一个错误的合并,只显示最新那个。 一开始sql写法为 SELECT * from `errors` GROUP BY `title`,`msg`,`category`,`level`,`appId` ORDER BY `createdAt` DESC 发现同一个错误是合并了,但是 ORDER BY 并没有生效,合并后的错误不是最新的一条错误而是最早的一条。于是查了资料发现,GROUP BY 没有排序功能,默认取合并时的第一条。于是就想到了,先排序完再合并就好了,于是有下面代码: SELECT * FROM (SELECT `errors`.*,`apps`.name from `errors` LEFT JOIN `apps` ON `errors`.`appId`=`apps`.`id` WHERE `app
2019-03-05
< linux addUser or adduser >
在更新博客系统时,因为ghost为了安全是不可以在root用户下安装的。要新建个用户来安装。 于是跟着教程走第一步就是添加新用户: # Create a new user and follow prompts adduser <user> 然而第一步就卡主了,报错 No command 'addUser' found, did you mean:Command 'adduser' from package 'adduser' (main)addUser: command not found 百度了下很多都说是权限问题。跟着别人的解决方法走还是无解。 最后好奇心的作用下把` addUser` 改成了` adduser`.最后神器的可以了。 官方教程用的是16.04或者18.04的ubuntu系统。我用的是14.04的。可能后面高版本是大写的吧。 哈哈,记录下。
2018-11-06
< nvm 全局安装 for all user >
使用root安装nvm,会吧文件安装到/root/.nvm/目录下,所以通过nvm安装的node,npm,npm包也都会装到这个目录下。这会导致一个问题: 当你需要用其他用户角色使用node或者npm包时,用不了,提示没安装。 就比如ghost博客,为了安全起见,不可以使用root角色安装。 然后百度(基本没有),谷歌(找到些方法,但是没效果),终于找到了个办法,记录下: n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local 安装好root用户角色下,安装好nvm、nodejs,npm,npm包后。执行以后命令就可以使其他用户角色也可以用了。原理我也不是很懂,因为linux不熟。大家研究研究吧!
2018-03-05
00:00
00:00