前言
接触到公司的一个项目,需要二次开发,许多方法,没怎么探究直接拿来用了,不想还真遇到一个小问题,想来以后可能遇到记录下。
问题描述
先来看看这样一个sql
SELECT * FROM table a,table b WHERE a.tab like '***%';
这个sql在项目中运行,没有发现问题
我在二次开发中,应用也没有爆出问题。
看似很简单的sql偏偏它出了问题
问题探究
在开发移动端的时候,应用到了同一个sql,同样没有报错,只是可能已经猜到了,数据是不全的。
在移动端需要这个数据的唯一id表示,我是习惯了,多应用id,可能旧的项目没有以id为主要标识,所以没有发现这个问题,重点是MYSQL不报错。
而且,数据是全的,但是在我开发移动端,应用接口的时候,就出了问题,暂时没深究差别。
在我以ID为主标识开发的时候,就出现了id为NULL的情况,这怎么可能。。。
在我打印了数据发现这个问题的时候,马上看了看这两个表,果然主键都是id,而且字段名都是相同的。。。
分别标识字段名之后,问题解决。
总结
这个问题不大,但是很容易遇到,尤其是不喜欢主键为主标识的开发习惯就很容易出现,记录下,还是要归结于sql语句的严谨上
完毕