在数据库筛选资料时候,常常会遇到重复资料的问题,因此,我们会使用“DISTINCT”及“GROUP BY”这二个SQL语法来过滤重复资料,但若只针对某一个字段来筛选,那比较简单一点,若是要符合不重复资料,而且又要回传所有的字段时,对于初学者来说就有一点难度,而且这二个语法的操作并不是所有的数据库都是一样的,例如在MySQL和PostgreSQL中这些指令的用法就会有一点不同,怎么说呢?让我们用实例来做说明吧。
以上的语法在MySQL上是可以正常执行的,但同样的语法在PostgreSQL中就会出现错误了,这会让新手混乱呀,像我就觉得很奇怪,为什么会错呢?原来同样的指令,在不同数据库中用法有时候是会不同的
既然范例二的语法无法在PostgreSQL中使用,那么PostgreSQL要怎么来筛选呢?我自己用的方式是回到“distinct”这个指令中,只是后面要加“on (字段)”,再配合“*”就可以筛选出来啰,当然这样的用法在MySQL中也会失败
小结:经过几次的经验以后,才了解到并非所有SQL的语法效果在每个数据库上都是一样的,所以当你觉得语法明明没错,但结果却不是预期的资料时,那么可以检查一下你用的数据库,是否适合该语法的操作。