Задать вопрос
  • Возможно увеличить скорость соединения используя несколько сетевых плат?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если коммутатор умный и поддерживает агрегирование каналов, то можно.
    Ответ написан
    Комментировать
  • Маршрутизация в Asterisk через API теле2, куда копать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Чтобы не запрашивать каждый раз стоит держать свою базу номеров, тогда алгоритм примерно такой:
    1. Запрашиваем из базы данные по номеру, если они не старше N дней (ODBC или MYSQL)
    2. Если данных в базе нет (или они старые), то делаем запрос к сайту (CURL)
    3. Если данные с сайта получены, разбираем строку, заносим данные в базу с указанием времени запроса
    4. Если данных нет - отрабатываем стандартный план звонка или пытаемся определить по префиксам
    Дополнительно можно сделать внешний скрипт, который будет периодически небольшими порциями обновлять данные в таблице.
    Ответ написан
    5 комментариев
  • Как присвоить родительскому продукту минимальную цену дочерних продуктов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    UPDATE `prices` AS `prc`
      JOIN (
        SELECT `prd`.`parent_id` AS `product_id`, MIN(`prc`.`price`) AS `price`
          FROM `products` AS `prd`
          JOIN `prices` AS `prc` ON `prc`.`product_id` = `prd`.`product_id`
          GROUP BY `prd`.`parent_id`
      ) AS `min` ON `min`.`product_id` = `prc`.`product_id`
      SET `prc`.`price` = `min`.`price`

    Запрос обновляет только один уровень вложенности, то есть минимум считается только по непосредственным потомкам.
    Ответ написан
    5 комментариев
  • Почему не работает PDO?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что KEYS, VALUE, NAME и FOR - зарезервированные слова MySQL. Хотите их использовать как имена таблиц или полей - берите в обратные апострофы.
    Ответ написан
  • Как удалить строки в которых в которых идет повторение?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ну, то что id у одной записи меньше, чем у другой, не говорит о том, что эта запись была сделана раньше. А так задача несложная
    DELETE `t1`.*
        FROM `table` AS `t1`
        LEFT JOIN `table` AS `t2` ON `t2`.`id` < `t1`.`id` 
            AND `t2`.`id2` = `t1`.`id2` AND `t2`.`id3` = `t1`.`id3`
        WHERE `t2`.`id` IS NOT NULL
    Ответ написан
  • Как составить запрос в mysql в котором есть count?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Разбейте задачу на подзадачи, затем соберите воедино. Решение может быть неоптимальным, но работать будет
    1. Количество заказов по сотрудникам:
    SELECT `manager_id`, COUNT(*) AS `count`
        FROM `claim`
        GROUP BY `manager_id`

    2. Сотрудники, имеющие руководителей
    SELECT `id`, `first_name`, `last_name`, `email` 
        FROM `manager` 
        WHERE `chief_id` IS NOT NULL

    3. Объединяем запросы. Подсоединяем таблицу с количеством для менеджера (JOIN, потому что варианты с нулём заказов у менеджера нас не интересуют) и его руководителя (LEFT JOIN, ноль у начальника - приемлемый вариант), выбираем строки где у руководителя нет заказов или их меньше, чем у подчинённого.
    SELECT `m`.`id`, `m`.`first_name`, `m`.`last_name`, `m`.`email` 
        FROM `manager` AS `m`
        JOIN (
            SELECT `manager_id`, COUNT(*) AS `count`
            FROM `claim`
            GROUP BY `manager_id`
        ) AS `mc` ON `mc`.`manager_id` = `m`.`id`
        LEFT JOIN (
            SELECT `manager_id`, COUNT(*) AS `count`
            FROM `claim`
            GROUP BY `manager_id`
        ) AS `cc` ON `cc`.`manager_id` = `m`.`chief_id`
        WHERE `chief_id` IS NOT NULL
            AND (`cc`.`count` IS NULL
                OR `mc`.`count` > `cc`.`count`)
    Ответ написан
  • Какой алгоритм работы у консоли, когда в ней пишешь название приложения и команду?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Консоль ничего не знает. В простейшем случае (если набрана одна команда без пайпов и перенаправления потоков):
    Когда вы набираете строку и нажимаете Enter сначала из строки отделяется первая подстрока до пробела (или конца строки, если пробелов нет). Остаток строки будет передан выполняемой команде как аргументы.
    Затем проверяется, не является ли эта подстрока внутренней командой шелла. Если да, то выполняется эта команда.
    Если это не внутренняя команда и не указан полный путь к файлу, то идёт поиск файла с таким именем в каталогах, перечисленных в строке окружения PATH. Если файл найден и у пользователя есть права на его запуск, то он запускается.
    Если указан полный путь (например, /usr/bin/perl), то поиск не производится, идёт только проверка на права запуска.

    PS. Если речь о досовском/виндовом cmd, то он ищет файлы добавляя расширения .bat, .cmd, .exe, если расширение не указано явно. Кроме того, в нём поиск начинается с текущего каталога, а затем уже по переменной PATH.
    Ответ написан
    4 комментария
  • Unknown column 'TEST' in 'field list' |?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Какой тип поля `coupon`?
    Ответ написан
  • Как по средствам perl отправить email?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Читайте доку по NTLM-авторизации. Ваш клиент не отправляет сообщение Type 1, соответственно дальше ничего и не происходит до таймаута.
    Попробуйте через Net::SMTP_auth, возможно понадобится ещё Authen::NTLM
    Ответ написан
    Комментировать
  • Как решить задачу на статическую балансировку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Точное решение можно получить только полным перебором, MN вариантов. Приближённое - эмпирическими алгоритмами, например жадным.
    Ответ написан
    Комментировать
  • Как правильно расположить IP адрес?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    /20 - не адрес, а сеть, имеющая 4096 потенциальных адресов (-2 для сети и броадкаста). Начнём выделять адреса для подсетей, предварительно отсортировав их по убыванию количества компьютеров. Подсети будем выбирать так, чтобы их размер был на 4 больше, чем количество компьютеров (адрес самой сети, броадкаст, адреса для свитча и роутера):
    183.118.32.0/20 = 183.118.32.0-183.118.47.255
    A | 425 | 512 | /23 | 183.118.32.0/23 = 183.118.32.0-183.118.33.255
    E | 353 | 512 | /23 | 183.118.34.0/23 = 183.118.34.0-183.118.35.255
    C | 341 | 512 | /23 | 183.118.36.0/23 = 183.118.36.0-183.118.37.255
    H | 308 | 512 | /23 | 183.118.38.0/23 = 183.118.38.0-183.118.39.255
    G | 253 | 512 | /23 | 183.118.40.0/23 = 183.118.40.0-183.118.41.255
    D |  95 | 128 | /25 | 183.118.42.0/25 = 183.118.42.0-183.118.42.127
    F |  86 | 128 | /25 | 183.118.42.128/25 = 183.118.42.128-183.118.42.255
    B |  32 |  64 | /26 | 183.118.43.0/26 = 183.118.43.0-183.118.43.63

    Для связи роутеров можно добавить ещё одну подсеть /28 или 8 подсетей /30. Роутеры со свитчами объединяются транками и отдельных адресов для связи между собой не требуют.
    Ответ написан
    1 комментарий
  • Почему mysqldump в cron не работает?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    При использовании в cron крайне желательно полностью прописывать пути ко всем файлам, как в командной строке, так и внутри запускаемых скриптов.
    Если не знаете полного пути к mysqldump, выполните команду
    which mysqldump
    Ответ написан
    1 комментарий
  • Как отключить блокировку при удаленном доступе?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    По лицензии на компьютере с десктопной версией Windows одновременно можно работать только с одним рабочим столом (неважно, локальным или удалённым). Если подключаться нужно для помощи текущему пользователю - VNC/TeamViewer/AmmyyAdmin ...
    Ответ написан
    Комментировать
  • Можно ли распарсить строку без обратной польской нотации?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Можно. Составьте простейший конечный автомат и вычисляйте им.
    Ответ написан
    Комментировать
  • Nested sets как удалить узел и все дочерние элементы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Запрос, вроде, правильный. Скорее всего проблема в неправильной организации nested set в базе. В корректном nested set условие
    left_key >= :parent_left_key AND right_key <= :parent_right_key

    описывает узел со всеми его потомками.
    Ответ написан
    Комментировать
  • Что является подтверждением легальности OEM-версии продукта от Microsoft?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В реальности требуют бухгалтерские документы, подтверждающие приобретение компьютеров вместе с Windows, проверяют активацию, соответствие ключа активации ключу на наклейке. Могут проверить соответствие материнской платы бухгалтерским документам (по OEM-лицензии допускается только гарантийная замена материнской платы по неисправности).
    Ответ написан
    Комментировать
  • Как сгруппировать результаты по диапазону дней?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для начала, у вас неправильный формат даты в запросе. Если вместо стандартного типа DATE использован VARCHAR или TEXT, то поиск будет работать некорректно.
    Ну а для группировки достаточно составить функцию, которая будет выдавать одинаковые значения для величин, которые надо включить в одну группу.
    GROUP BY FLOOR(TIME_TO_SEC(TIMEDIFF(`start_date`, '2015-12-01'))/2/24/60/60)

    Ну и, конечно, индексы при такой группировке работать не будут.
    Ответ написан
    Комментировать
  • Как выбирать записи из базы циклично?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Добавить поле `lastUse` TIMESTAMP с индексом;
    UPDATE `table` SET @id := `id`, `lastUse` = NOW() ORDER BY `lastUse` LIMIT 1;
    SELECT * FROM `table` WHERE `id` = @id;

    Такая комбинация запросов ещё и позволяет работать параллельно нескольким скриптам.
    Ответ написан
  • Как переписать sql зарос insert на update?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если product_id - UNIQUE или PRIMARY KEY, то добавьте в конец запроса
    ON DUPLICATE KEY UPDATE `image` = VALUE(`image`)
    Ответ написан
  • Как хранить информацию о прочтении сообщения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ: та же, что и была. Такие вещи реализуются отдельной таблицей связи unreaded_messages(message_id, admin_id). Иначе при добавлении одиннадцатого админа придётся переделывать всю таблицу сообщений.
    Ответ написан
    1 комментарий