当前位置: 首页 > news >正文

Ambiguous column name

这是个sql错误,今天遇到的一个bug,姑且把标题叫做 歧义列吧



项目中有这样一个写法 select *,ClasName From Class order by ClassName  这个是最终的生成语句。
这个语句 加粗部分是没有任何错误的。只是结果集合中会有2个相同的列 "ClassName",但是如果 order by的话,就会报
" Ambiguous column name" 的错误!如果直接写出这样的语句也许很容易就发现错误,但是由于项目中的sql是
根据业务逻辑动态拼接的。所以你不容易发现这样的错误。

其实这里有一个地方写的非常不好。就是那个* ,* 号已经囊括了所有的列。导致的重复列的出现。然后order by,或者进行聚合,group 等等操作
都会造成歧义,其实这是个不好的习惯。任何时候(在项目中)最好都不要用 * 来偷懒,项目中之所以是用 * 来替代,估计是因为项目中那张表的字段太多了。
而且* 会带来很多的开销。应该尽可能只搜索业务需要查询的列。

另外我们在innner join 等连接查询的时候,经常会用 表名.列名 来标识某一列。如果不加上也会出现 “ Ambiguous column name” 的错误。
问题很简单,但是还是记录下来,好记性不如一个烂笔头

相关文章:

  • js获取textarea中的空格与回车
  • 简单数据拆分
  • Linq error: Sequence contains no elements
  • asp.net mvc中ckeditor+ckfinder的配置方法
  • 详细图解发布aps.net mvc网站项目到IIS的方法
  • 在windows server2003 iis6部署mvc3
  • Linq to SQlite的使用
  • 去掉链接a标签外的虚线框(ff,ie)
  • IE6、IE7、IE8、Firefox兼容性问题
  • 搜集整理的一个c#.net的加密解密的类
  • The server has encountered an error while loading an application during the processing of your reque
  • asp连接mysql
  • ASP+MYSQL:ODBC 驱动程序不支持所需的属性
  • ASP解决方案-Microsoft JET Database Engine(0x80004005)未指定错误
  • 编辑器 img src问题
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CSS 提示工具(Tooltip)
  • C学习-枚举(九)
  • Fastjson的基本使用方法大全
  • HomeBrew常规使用教程
  • mysql常用命令汇总
  • PAT A1092
  • pdf文件如何在线转换为jpg图片
  • Python 反序列化安全问题(二)
  • Vue.js源码(2):初探List Rendering
  • Vue实战(四)登录/注册页的实现
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 第2章 网络文档
  • 如何优雅地使用 Sublime Text
  • 入门级的git使用指北
  • 使用Gradle第一次构建Java程序
  • 数组的操作
  • 微信开源mars源码分析1—上层samples分析
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #控制台大学课堂点名问题_课堂随机点名
  • %check_box% in rails :coditions={:has_many , :through}
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (libusb) usb口自动刷新
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (编译到47%失败)to be deleted
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net打印*三角形
  • .net网站发布-允许更新此预编译站点
  • .Net中的设计模式——Factory Method模式