Mysql
 sql >> база данни >  >> RDS >> Mysql

PHQL WHERE xxx IN () може да получи само 1 данни

Тъй като има няколко примера за работа както с PDO, така и с PHQL тук и тук който отговаря на вашия пример, има още един възможен подход в механизма на Phalcon queryBuilder:

$builder = $this->modelsManager->createBuilder();
$builder->addFrom('Application\Entities\KeywordsTrafficReal', 'tr')
        ->leftJoin('Application\Entities\Keywords', 'kw.id = tr.keyword_id', 'kw')
        ->inWhere('keyword_id', self::$keywords) // <<< it is an array!
        ->betweenWhere('traffic_date', self::$daterange['from'], self::$daterange['to']);

inWhere методът е достъпен само чрез queryBuilder, доколкото знам и работи точно по същия начин като споменатите примери за PDO IN (?, ?, ?) . Но не е необходимо да го прилагате на ръка.

Можете също да пропуснете част от създаването на PHQL и да управлявате директно, за да създадете SQL заявка, но на цена за извършване на собствени проверки.

$realModel = new KeywordsTrafficReal();

$sql = sprintf('SELECT * '
            .  'FROM keywords_traffic_real tr '
            .  'LEFT JOIN keywords kw '
            .  'ON kw.id = tr.keyword_id '
            .  'WHERE tr.keyword_id IN(%s) '
            .  "AND traffic_date BETWEEN '%s' AND '%s' ",
        join(',', self::$keywords), self::$daterange['from'], self::$daterange['to']);

$results = new \Phalcon\Mvc\Model\Resultset\Simple(null, $realModel, $realModel->getReadConnection()->query($sql));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да намеря не-ASCII знаци в MySQL?

  2. Как да използвам SUBSTRING() в MySQL

  3. Съвпадение на всички стойности в клауза IN

  4. MySQL:Как да разрешите отдалечена връзка с mysql

  5. php произволни mysql данни