[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подзапрос
whoami
Здравствуйте уважаемые сэры

можно как нибудь вместо одинаковых подзапросов в BETWEEN там как нибудь накатать 1 подзапрос и одной переменной все это сравнивать или и так сойдет?

$query = "SELECT *
FROM "
. $this->v_test . "
WHERE plid = ?
AND
CASE WHEN
(SELECT COUNT(*) FROM "
. $this->v_test . " WHERE plid = ?) > 50
THEN
date BETWEEN
STR_TO_DATE(DATE_SUB((SELECT date FROM "
. $this->v_test . " WHERE plid = ? ORDER BY date DESC LIMIT 1), INTERVAL 1 MONTH), '%Y-%m-%d')
AND
STR_TO_DATE(DATE_ADD((SELECT date FROM "
. $this->v_test . " WHERE plid = ? ORDER BY date DESC LIMIT 1), INTERVAL 1 DAY), '%Y-%m-%d')
ELSE TRUE END
ORDER BY pid DESC"
;

$stmt = $this->conn->prepare( $query );

$stmt->bindParam(1, $this->key);
$stmt->bindParam(2, $this->key);
$stmt->bindParam(3, $this->key);
$stmt->bindParam(4, $this->key);
$stmt->execute();

return $stmt;


Типа там че то как то так надо но это не точно

@date = (SELECT date FROM " . $this->v_test . " WHERE plid = ? ORDER BY date DESC LIMIT 1);

date BETWEEN
STR_TO_DATE(DATE_SUB(@date, INTERVAL 1 MONTH), '%Y-%m-%d')
AND
STR_TO_DATE(DATE_ADD(@date, INTERVAL 1 DAY), '%Y-%m-%d')
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.