从ZendFramework2中生成的MYSQL中删除倒逗号

从ZendFramework2中生成的MYSQL中删除倒逗号,mysql,zend-framework2,code-generation,Mysql,Zend Framework2,Code Generation,我一直在ZF2中创建一个MYSQL语句: /** * get response by filter */ public function getResponsesByFilterArray($filter_array) { $limit = 100; $rowset = $this->tableGateway->select( function (\Zend\Db\Sql\Select $select) use($where, $limit

我一直在ZF2中创建一个MYSQL语句:

/**
 * get response by filter
 */
public function getResponsesByFilterArray($filter_array)
{
    $limit = 100;
    $rowset = $this->tableGateway->select(
            function (\Zend\Db\Sql\Select $select) use($where, $limit, $filter_array)
            {
                //$select->quantifier('DISTINCT');
                $select->join('question_responses', 'survey_responses.id = question_responses.response_id', array('value'));
                $select->where($where);
                foreach($filter_array as $filter_model)
                {

                    $select->where(array('question_id' => $filter_model->question_id));

                    switch($filter_model->comparison){
                        case $filter_model::$EQUALS:
                            $select->where->equalTo('value', $filter_model->value);
                            break;
                        case $filter_model::$GREATER_THAN:
                            $select->where->greaterThan('value', $filter_model->value);
                            break;
                        case $filter_model::$LESS_THAN:
                            $select->where->lessThan('value', $filter_model->value);
                            break;
                    }
                }
                $select->group('id');
                $select->limit($limit);

                $adapterPlatform = new \Zend\Db\Adapter\Platform\Mysql();
                echo $select->getSqlString($adapterPlatform);
            });

    return $rowset;
}
这将生成以下MySQL语句,除了一个非常重要的小点之外,它是完全正确的

     SELECT `survey_responses`.*, `question_responses`.`value` AS `value` FROM `survey_responses` INNER JOIN `question_responses` ON `survey_responses`.`id` = `question_responses`.`response_id` WHERE `question_id` = '11' AND `value` > '900' GROUP BY `id` LIMIT 0,100
MySQL语句应该生成:

     SELECT `survey_responses`.*, `question_responses`.`value` AS `value` FROM `survey_responses` INNER JOIN `question_responses` ON `survey_responses`.`id` = `question_responses`.`response_id` WHERE `question_id` = '11' AND `value` > 900 GROUP BY `id` LIMIT 0,100
差值是数字900周围的倒逗号

如何从生成的MySQL语句中删除这些倒逗号

n、 b这是基于:

    $adapterPlatform = new \Zend\Db\Adapter\Platform\Mysql();
    echo $select->getSqlString($adapterPlatform);
虽然我确实认为这并不总是生成正确的MySQL字符串,但这是我唯一要做的事情

提前感谢,


Abor

将其转换为整数:

$select->where->greaterThan('value', (int)$filter_model->value);

你确定这样行吗?我用(int)和intval(x)都试过了,结果还是一样的,也就是仍然在倒逗号内。谢谢Tim,通常问题可能是在数据库中,我将列类型从VARCHAR改为FLOAT,查询确实有效。如果没有倒逗号,查询将使用VARCHAR,但是通过对DB进行更改,它可能更干净。谢谢你的帮助。流产