SQL中的隐式列问题
在日常开发中,我们为了书写代码方便、快捷,经常在SQL的SELECT语句中使用通配符(*)来查询一张表中的所有列的信息。在一般情况下使用通配符的确会很方便,但是也会给你带来非常难以发现的错误。如:有A和B两表,它们都有c_name字段,你想通过A JOIN B,来查找B表中所有有c_name字段的行(实际返回的是B表的c_name字段),但是返回的数据与你想要的数据不匹配。
在日常开发中,我们为了书写代码方便、快捷,经常在SQL的SELECT语句中使用通配符(*)来查询一张表中的所有列的信息。在一般情况下使用通配符的确会很方便,但是也会给你带来非常难以发现的错误。如:有A和B两表,它们都有c_name字段,你想通过A JOIN B,来查找B表中所有有c_name字段的行(实际返回的是B表的c_name字段),但是返回的数据与你想要的数据不匹配。
在开发中,特别是表列很多的情况下,我们通常为了快、偷懒等原因,常常使用*符号将表中的列全部列出来。如:select * from test。我们今天来讨论一下使用通配符(*)的优劣。
在日常开发中,我们通常需要在指定的一张表或多张表中随机的选择一条记录作为显示。如:广告展示(从多个广告商的广告中随机选择一个)、新闻推荐等等