最近发现CI的$this->db->distinct(); 貌似没什么意义!
$this->db->distinct();好像不支持参数,
$this->db->distinct('ID');
结果 还是 SELECT distinct * FROM TABLE
结果还是用 select了
$this->db->select('DISTINCT(TEAMID)'); 用的什么数据库? mssql 数据库 {:3_46:}我有个ci+mssql项目好几个地方都用到ar distinct,方便的很 就是哦~~貌似不理解这个方法~ 刚才测试了一下sql语句,发觉这个东东貌似作用也仅仅是屏蔽掉重复值的列~
如果你的表有主键,而且你select的值里也要包含这个主键的话,它本身就没多大意义啊~
除非你只输出个别列值~
我测试的mysql中:
SELECT id,distinct name,price FROM `orders` WHERE 1; //这是语法错误
SELECT distinct * FROM TABLE ;//这没有意义
呵呵~ $this->db->select('DISTINCT(TEAMID)');
这句结果是 SELECT distinct(TEAMID) FROM TABLE
只能这样用了.懒的改 ar了... :):):):victory: 屏蔽重复的列,单单这个用程序控制就要花费很多额外开销,而数据只要一个distinct就解决了
像模糊查询,查询结果很可能存在多个相同的列,用程序控制就要写冗长的循环检测,即增加了工作量又降低了执行效率,这种事只是简单的执行一个 distinct 就搞定了
如果distinct真的没有意义,那为什么这些SQL开发商没有去掉它呢? 我测试的mysql中:
SELECT id,distinct name,price FROM `orders` WHERE 1; //这是语法错误
SELECT distinct * FROM TABLE ;//这没有意义...
kazaff 发表于 2009-10-22 20:14 http://codeigniter.org.cn/forums/images/common/back.gif
语法用错了,应该是 SELECT distinct name,id,price FROM `orders`
页:
[1]
2