• Как выполнить подзапрос в Doctrine DQL?

    @ugin_root Автор вопроса
    Печально... Но я вроде додумался до решения для моего частного случая когда нужно посчитать сумму уникальных записей сразу по нескольким полям.
    SQL:
    SELECT COUNT(DISTINCT 
    	YEAR(voting.date_at), 
    	MONTH(voting.date_at), 
    	DAY(voting.date_at), 
    	human.id
    ) AS absentDayHuman
    FROM vote 
    	JOIN human ON human.id = vote.human_id
    	JOIN voting ON voting.id = vote.voting_id
    	JOIN party ON party.id = human.party_id
    WHERE vote.type = 0

    DQL(в count нельзя указывать несколько параметров):
    SELECT COUNT(DISTINCT CONCAT(
    	DATE_FORMAT(voting.dateAt, '%Y-%m-%d'), 
    	'-', 
    	human.id
    )) AS absent
    FROM \App\Entity\Vote vote
    	JOIN vote.human human
    	JOIN vote.voting voting
    	JOIN human.party party
    WHERE vote.type = :voteTypeAbsent
    Ответ написан
    Комментировать
  • Nodejs+mysql(node-mysql), запросов 2000+ в секунду, через 5-40 минут ошибка "Error: read ECONNRESET"

    @ugin_root Автор вопроса
    Пулы в конечном итоге тоже падали. У меня получилось решить проблему банальным увеличением "max_allowed_packet" и "query_alloc_block_size" до 20 Мб, проблема пропала.

    P.S: Забыл что это тяжёлое приложение и что дома у меня дефолтные настройки mysql, грешил на винду, т.к. на убунте всё прекрасно работало.
    Ответ написан
    Комментировать
  • Добавлять просмотр в mysql при открытии страницы

    @ugin_root
    Все данные которые участвуют при формировании запроса, необходимо экранировать с помощью функции mysql_real_escape_string и обрамлять скобками, кроме значения NULL.
    $path=$_GET['path'];
    mysql_query("UPDATE `paper` SET `hits` = `hits` + 1 WHERE `path` = '" . mysql_real_escape_string($path) . "'");

    FALSE == '0'
    TRUE == '1'
    123 == '123'
    NULL == NULL
    Ответ написан
    Комментировать