You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
51 lines
1.3 KiB
<?php |
|
/** |
|
* @link http://www.yiiframework.com/ |
|
* @copyright Copyright (c) 2008 Yii Software LLC |
|
* @license http://www.yiiframework.com/license/ |
|
*/ |
|
|
|
namespace yiiunit\framework\db\mysql; |
|
|
|
use yii\db\Expression; |
|
use yii\db\Query; |
|
|
|
/** |
|
* @group db |
|
* @group mysql |
|
*/ |
|
class QueryTest extends \yiiunit\framework\db\QueryTest |
|
{ |
|
protected $driverName = 'mysql'; |
|
|
|
/** |
|
* Tests MySQL specific syntax for index hints. |
|
*/ |
|
public function testQueryIndexHint() |
|
{ |
|
$db = $this->getConnection(); |
|
|
|
$query = (new Query())->from([new Expression('{{%customer}} USE INDEX (primary)')]); |
|
$row = $query->one($db); |
|
$this->assertArrayHasKey('id', $row); |
|
$this->assertArrayHasKey('name', $row); |
|
$this->assertArrayHasKey('email', $row); |
|
} |
|
|
|
public function testLimitOffsetWithExpression() |
|
{ |
|
$query = (new Query())->from('customer')->select('id')->orderBy('id'); |
|
// In MySQL limit and offset arguments must both be nonnegative integer constant |
|
$query |
|
->limit(new Expression('2')) |
|
->offset(new Expression('1')); |
|
|
|
$result = $query->column($this->getConnection()); |
|
|
|
$this->assertCount(2, $result); |
|
|
|
$this->assertNotContains(1, $result); |
|
$this->assertContains(2, $result); |
|
$this->assertContains(3, $result); |
|
} |
|
}
|
|
|