首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL的列名冲突陷阱:为什么SELECT a.id, a.*能运行,而SELECT id, *却报错?

    问题重现:两个相似的SQL,不同的命运 先来看两个具体的例子: -- SQL1: 这个可以正常运行 SELECT a.id, a.* FROM test1 a; -- SQL2: 这个会报错 SELECT...分析器负责解析SQL语句的结构,当它遇到SELECT id, * ...时,会这样分析: id:识别为一个列名 *:识别为所有列的简写,包括id列 结果:检测到列名冲突!...而当分析器遇到SELECT a.id, a.* ...时: a.id:识别为表a的id列 a.*:识别为表a的所有列 由于有别名限定,分析器认为这是明确的指令,不会将其视为错误 4....4.1 避免使用SELECT * 无论是从可读性还是性能角度,都强烈建议避免使用SELECT *,主要原因如下: 性能影响:SELECT *可能会查询不必要的列,增加网络传输和处理时间 可读性差:其他人无法直观看出查询返回哪些字段...小结 MySQL对SELECT a.id, a.*和SELECT id, *的不同处理,体现了数据库设计中的一个重要原则:明确性优于隐晦性。

    34410

    jQuery动态加载select下拉列表「建议收藏」

    需求说明:   以前使用的select下拉列表都是静态的,select 的option数据都是写死的。现在项目中的select需要根据不同的场景使用不同的数据,解决方式就是动态加载option数据。...步骤一:jsp页面静态的select:   select id="selectSM">     选择A     选择B...但是在产品不同的需求时,动态select更能胜任其多样性。     2、select有多种写法,这里是最简单的。 步骤二:jQuery通过ajax请求获取动态的数据,并在jsp页面显示。...中传递其他参数,可以在option 的value属性中添加参数     //$("#selectSM").append("id+"'>"+msg.rows...[i]+"");   }   },error:function(){   alertLayer("获取数据失败","error");   }   }); }   注意:这里使用的是jQuery

    6.3K60
    领券