Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cakephp独特查找错误_Php_Mysql_Cakephp_Distinct - Fatal编程技术网

cakephp独特查找错误

cakephp独特查找错误,php,mysql,cakephp,distinct,Php,Mysql,Cakephp,Distinct,我使用的是cakephp2.7,需要从表中获取不同的值 $rows = $this->Skill->find('list',array( 'conditions'=>array( 'Skill.status'=>1, 'Skill.percent >='=> 70, 'Skill.percent <='=>

我使用的是cakephp2.7,需要从表中获取不同的值

$rows = $this->Skill->find('list',array(
            'conditions'=>array(
                    'Skill.status'=>1,
                    'Skill.percent >='=> 70,
                    'Skill.percent <='=> 100,
                ),
            'fields' => array('DISTINCT Skill.row AS row'),
            //'fields' => 'DISTINCT Skill.row AS row',/*also tried*/
        ));
我在mysql中尝试了相同的查询,给出了相同的错误,但当我删除mysql查询中的
id
列时,它运行正常

现在的问题是,
skill.id
列由cakephp自动添加到查询中,它是
主键

如何防止在
find()
中包含
id
列?

您是否尝试过按技能分组.row而不是使用select distinct?它应该会给你相同的结果,而不存在DISTINCT的问题。我已经添加了
'group'=>数组('Skill.row'),
,并删除了DISTINCT关键字,但结果是错误的。你能用新的查询和你得到的数组更新你的问题吗?另外,我对cake php不太熟悉,但您应该会得到一个查询,该查询最终具有group by skill.row,而不涉及任何数组。您需要描述您想要的输出(例如,
find
的返回数组的格式)。为什么要使用
find
'list'
选项?我建议您只需将
查找
中的
'list'
更改为
'all'
。您是否尝试过按技能分组.row而不是使用select distinct?它应该会给你相同的结果,而不存在DISTINCT的问题。我已经添加了
'group'=>数组('Skill.row'),
,并删除了DISTINCT关键字,但结果是错误的。你能用新的查询和你得到的数组更新你的问题吗?另外,我对cake php不太熟悉,但您应该会得到一个查询,该查询最终具有group by skill.row,而不涉及任何数组。您需要描述您想要的输出(例如,
find
的返回数组的格式)。为什么要使用
find
'list'
选项?我建议您只需将
查找中的
'list'
更改为
'all'
。可能重复的
SELECT `Skill`.`id`, DISTINCT `Skill`.`row` AS `row` FROM `mydb`.`skills` AS `Skill` WHERE `Skill`.`status` = 1 AND `Skill`.`percent` >= 70 AND `Skill`.`percent` <= 100