Changeset 3742:00f9590175cb
- Timestamp:
- 03/29/18 13:40:04 (7 years ago)
- Branch:
- default
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inc/core/class.dc.selectstatement.php
r3741 r3742 351 351 * @return dcSelectStatement self instance, enabling to chain calls 352 352 */ 353 public function distinct($distinct )353 public function distinct($distinct = true) 354 354 { 355 355 $this->distinct = $distinct; … … 445 445 } 446 446 447 // Group by clause (columns or aliases) 448 if (count($this->group)) { 449 $query .= 'GROUP BY ' . join(', ', $this->group) . ' '; 450 } 451 452 // Having clause(s) 453 if (count($this->having)) { 454 $query .= 'HAVING ' . join(' AND ', $this->having) . ' '; 455 } 456 447 457 // Order by clause (columns or aliases and optionnaly order ASC/DESC) 448 458 if (count($this->order)) { … … 450 460 } 451 461 452 // Group by clause (columns or aliases)453 if (count($this->group)) {454 $query .= 'GROUP BY ' . join(', ', $this->group) . ' ';455 }456 457 // Having clause(s)458 if (count($this->having)) {459 $query .= 'HAVING ' . join(' AND ', $this->having) . ' ';460 }461 462 462 // Limit clause 463 463 if ($this->limit !== null) { … … 472 472 return $query; 473 473 } 474 475 /** 476 * Compare two SQL queries 477 * 478 * May be used for debugging purpose as: 479 * if (!$sql->isSame($sql->statement(), $oldRequest)) { 480 * trigger_error('SQL statement error', E_USER_ERROR); 481 * } 482 * 483 * @param string $local The local 484 * @param string $external The external 485 * 486 * @return boolean True if same, False otherwise. 487 */ 488 public function isSame($local, $external) 489 { 490 $filter = function ($s) { 491 $s = strtoupper($s); 492 $patterns = array( 493 '\s+' => ' ', // Multiple spaces/tabs -> one space 494 ' \)' => ')', // <space>) -> ) 495 ' ,' => ',', // <space>, -> , 496 '\( ' => '(' // (<space> -> ( 497 ); 498 foreach ($patterns as $from => $to) { 499 $s = preg_replace('!' . $from . '!', $to, $s); 500 } 501 return $s; 502 }; 503 return ($filter($local) !== $filter($external)); 504 } 474 505 }
Note: See TracChangeset
for help on using the changeset viewer.