Задать вопрос
  • Как сформулировать запрос из двух таблиц, где нужно взять два разных значения одного столбца?

    rozhnev
    @rozhnev Куратор тега SQL
    Fullstack programmer, DBA, медленно, дорого
    SELECT Запись_на_прием.ID_Записи, Водитель.ФИО Водитель, Врач.ФИО Врач
    FROM Запись_на_прием
    JOIN Пользователь AS Водитель ON Водитель.ID_Пользователя = Запись_на_прием.ID_Водитель 
    JOIN Пользователь AS Врач ON Врач.ID_Пользователя = Запись_на_прием.ID_Врач
    ;


    MS SQL online test
    Ответ написан
    Комментировать
  • Как объедининь две сети с двумя маршрутизаторами в одну?

    hint000
    @hint000
    у админа три руки
    Если меняете маску на 255.255.254.0, то ни о каком WAN на Zyxel 1 не должно идти речи.
    Zyxel 1 остаётся в качестве свитча (порт WAN свободный).
    DHCP собрать в одном месте
    или взять управляемые свитчи, умеющие DHCP snooping, тогда можно оставить два независимых DHCP на двух ZyXEL'ях.
    Ответ написан
    Комментировать
  • Как оптимизировать сложный запрос на нагруженной базе MYSQL?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Так как из второй таблицы данные не выбираются - попробуйте (NOT EXISTS):
    SELECT 
      task.id, 
      task.dc, 
      task.provider, 
      task.type, 
      task.url, 
      task.cost, 
      task.cost_bot, 
      task.last_start_msec, 
      task.url_id, 
      task.remains, 
      task.cat 
    FROM 
      Task task 
    WHERE 
      task.status = 'active' 
      AND task.type = 'follow_profile' 
      AND task.provider = 'insta' 
      AND task.cat = 3 
      AND NOT EXISTS(
    	SELECT 1 FROM  TaskFlow flow 
    	WHERE 
    		flow.url_id = task.url_id 
    		AND flow.executor_acc_id = $acc 
      );
    Ответ написан
  • Какой блок адресов CIDR лучше и почему?

    Ваш вопрос не имеет смысла, классовая адресация окончательно устарела примерно к 2006му году и сейчас не используется, вопрос "Перечислите записи в таблице маршрутизации маршрутизатора 1 для обоих адресных блоков, при этом вам следует использовать как можно меньше записей в соответствии с принципом бесклассовой пересылки." на бесклассовую адресацию, но само задание скорей всего взято из учебника 90х, когда классы еще использовались, поэтому сети упомянуты как относящиеся к классу, фактически это задание на суперсети (такое понятие существовало примерно с 1992 по 1993 год, в 1993м году уже появилась полностью бесклассовая адресация) . Класс не может быть лучше или хуже определенного CIDR, классовая и бесклассовая адресация это два разных подхода к распределению адресного пространства. Сравнитьвать имеет смысл только CIDR и классовую адресацию в целом, CIDR очевидно лучше т.к. дает более гибкий подход к маршрутизации и распределению адресов.
    Ответ написан
    1 комментарий
  • Бывает ли дружба между двумя сетями на 1 ПК?

    Griboks
    @Griboks
    Скорее всего, у вас прописаны стандартные маршруты. Если адреса нет в текущей сети, то компьютер посылает запрос в интернет. Это называется маршрутом по умолчанию. Так вот в вашем случает корпоративный адрес находится вовсе не в интернете, поэтому запрос выходит, грубо говоря, в другую дверь.

    Надо настроить маршрут до корпоративной сети через корпоративный интерфейс(адрес, карту, сеть) .
    Ответ написан
    1 комментарий
  • Uncaught mysqli_sql_exception: Ошибка в запросе мускуля, что делать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Скоро с этим MySQL с ума сойду...
    Да, с таким подходом лучше бросайте это грязное дело...

    Ничего не понимаю!
    Ну так чтобы что-то понимать, нужно смотреть что происходит, знать что содержится в переменных и читать ошибки. Чтобы смотреть что происходит нужно использовать var_dump или ставить xdebug, чтобы знать что в переменных - нужно понимать какие переменные смотреть. В том числе знать почему возникают варнинги и все их исправить.

    В данном случае у вас кроме того что запрос опять не использует подготовленные выражения, опять никак не проверяются переменные которые вы "суваете" в запрос. Сформируйте запрос в переменную, выведите ее, посмотрите где в переменных косяк (хотя он и так виден и вытекает из предыдущих описанных ошибок)... Короче учитесь искать ошибки, тем более что все они в логе описаны.
    Ответ написан
    Комментировать
  • Почему меняется положение строк в столбце таблицы при Update данных?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    У таблиц нет никакого порядка строк, если вы не указываете его явно в запросе.

    select * from resume order by id asc;
    Ответ написан
    1 комментарий
  • Как вывести одинаковое кол-во значений в базе данных mysql?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    GROUP BY и COUNT
    SELECT post_id, count(post_id) as cnt FROM MyTable GROUP BY post_id

    Это элементарный вопрос, на который ответит любой школьник, изучающий информатику
    Ответ написан
    Комментировать
  • Как настроить оборудование в сети чтобы у сервера был и белый и серый IP сразу?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    На одном интерфейсе вполне может быть несколько адресов. Маршрутизируется это так же, как и всегда - добавлением маршрутов во все нужные сети. В чём сложность, собственно? Если надо через этот сервер форвардить трафик из локальных сетей в интернет - настраиваете NAT.
    Ответ написан
    2 комментария
  • Как изменить определенные строки по id в mysql?

    Immortal_pony
    @Immortal_pony Куратор тега MySQL
    ... вот ты прямо так на английском и пиши
    где = WHERE
    поле id = id
    от 1 до 10 000 = >=1 AND id <= 10000

    Теперь собирай всё вместе:
    WHERE id >=1 AND id <= 10000

    А теперь добавляй это условие к своему запросу:
    UPDATE table SET field=field*2 WHERE id >=1 AND id <= 10000
    Ответ написан
    4 комментария
  • Как в windows назначить на сетевую карту 10 ip адресов?

    @Drno
    давайте я погуглю за Вас
    https://winitpro.ru/index.php/2018/08/03/dobavit-v....
    Ответ написан
    Комментировать
  • SQL запрос. Как найти сумму повторяющихся строк?

    rozhnev
    @rozhnev Куратор тега SQL
    Fullstack programmer, DBA, медленно, дорого
    Элементарный запрос на суммирование с группировкой:
    SELECT id, SUM(price) sum_price
    FROM tbl
    GROUP BY id
    ORDER BY sum_price DESC;


    SQL SUM GROUP BY
    Ответ написан
    8 комментариев
  • Как дать понять питону, что если строка является 'null', то ее пробивать нельзя?

    Vindicar
    @Vindicar
    RTFM!
    До чего изобретателен может быть человек, не понимающий что он делает!
    Ключевое слово: кортеж.
    await cur.execute(sql, (id))
    (id) - это то же самое, что id.
    А вот (id,) - это уже кортеж из одного элемента.
    execute() как раз и ожидает вторым параметром кортеж, или иную коллекцию, где один элемент - это одно подставляемое значение.

    Этот метод необходим для удаления скобок, которые ставит pymysql при обычном fetchone

    "Скобки", как ты выразился - это потому что fetchone() возвращает кортеж, по одному элементу на значение в строке (ну или None если очередной строки нет). Т.е. для каждого пункта между SELECT и FROM будет один элемент в кортеже, в том же порядке. Ты запрашиваешь только teleid, поэтому получаешь кортеж из одного элемента.
    Получить этот элемент можно, обратившись по индексу 0.
    row = await cur.fetchone()
    if row is not None: #есть хоть одна строка?
        teleid = row[0]
        # дальше делаешь что хочешь с teleid
    else: # нет такой строки
        print('Беда')

    Перед тем как писать ботов, освой азы языка, а? Структуры данных в частности.
    Ответ написан
    Комментировать
  • Как изменять значение в бд по времени?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А что мешает вместо 0/1 заносить срок окончания подписки и проверять его?
    Ответ написан
    Комментировать
  • Как лучше обработать пробег автомобиля?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Интерполировать. Как именно - зависит от того, как используются автомобили.
    Если предположить, что пробег каждый день одинаковый, то берём общий пробег за интервал и делим на кличество дней в интервале. Затем либо сохраняем полученный средний пробег для каждого дня интервала, либо вычисляем пробег на конец месяца и сохраняем помесячно.
    Если, например, весь пробег только в будни, то, соответственно, вычисляем количество рабочих дней в интервале и делим на него. При раскидывании по дням, опять же, записываем нулевой пробег в выходные и средний в будни.
    Ответ написан
    4 комментария
  • Почему хост и его GW(гейтвей сети) должны быть в одном L2 домене(в одном vlan)?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Представьте обратную ситуацию - хост и его шлюз НЕ находятся в пределах одной сети. Тогда, очевидно, чтобы отправить пакет шлюзу, требуется какой-то узел в сети, маршрутизирующий пакеты за её пределы. Хоп, вы получили новый шлюз.
    Ответ написан
    Комментировать
  • Как можно увеличить скорость записи в бд mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Подскажите, в чем может быть проблема? Спасибо!!!
    Подсказываю: Файлы хранятся в файловой системе. Хранить файлы в бд это палка о двух концах, оба из которых засунуты в ж...
    1) Файловые системы работают с файлами гораздо лучше текстовых хранилищ.
    2) Для отдачи файлов из файлов не нужно выполнять запросы к бд, десериализацию, декодирование из жсон, а затем из базе64, и гнать как ответ от пыха к серверу. Еще и гонять туда-сюда МНОГО данных, бд такое не любит. Просто отдаешь путь к файлу и его сервер напрямую читает.
    3) Проще настраивать кэширование на стороне клиента, когда файл отдается не через скрипт, а "как файл"
    4) Хранение в базе64 - это +30% примерно к весу изображения
    И еще дохрена проблем...

    Единственный более-менее аргумент за хранение в базе картинок - отдавать их по запросу только авторизированным пользователям. И то, тут правильнее хранить путь до них, сами картинки держать опять же в фс, выше документ рута, и отдавать их через readfile();

    В остальном хранить файлы в бд - решение такое же здравое, как хранить деньги в акциях Российских компаний...
    Ответ написан
    3 комментария
  • Как можно увеличить скорость записи в бд mysql?

    @rPman
    Что значит стопорится? зачем гадать, расставь по больше вывода в свои логи отладочной информации (когда принял запрос, обработал, отправил транзакцию, когда получил ответ от базы и т.п.) с таймингами и смотри что и где происходит в проблемный момент

    Что за пиз...ц с сериализацией картинок в base64 потом это все в json, а в базе хранить php-щным serialize?

    http post прекрасно справляется с отправкой файлов, там своя сериализация, никто не мешает миксить в запросе get и post данные

    Не храните картинки в базе данных, никак, ни блобом ни сериализацией, кто придумал этот маразм, в каком бредовом туториале это прочитали и каждый второй это реализует?

    Файлы храни в файлах на диске, а в базу записывай путь или имя файла (либо сам файл по идентификатору называй), раз в сто лет на обслуживании базы сравнивай наличие файлов на диске и записей в базе и удаляй висяки (образуются если во время обработки произошла ошибка, например скрипт умер, файл записали а транзакция в базе откатилась)

    p.s. в php во всех репозитариях есть красивый сериализатор igbinary, если что он в каком то смысле даже быстрее старого serialize и точно компактнее, его потихоньку в стандарт пропихивают, например можно использовать его для хранения сессий
    Ответ написан
    1 комментарий
  • Как в результатах запроса колонку превратить в строку?

    @Akela_wolf
    Extreme Programmer
    Если известно количество устройств (и соответственно количество колонок в итоговой таблице) - можно. Пример для 4 устройств:
    CREATE TABLE data(
      device INT NOT NULL,
      date DATETIME NOT NULL,
      metric NUMERIC(10,2) NOT NULL
    );
    
    INSERT INTO data VALUES (1, '2022-01-01 00:00:00', 2.34),
    (2, '2022-01-01 00:00:00', 1.23),
    (3, '2022-01-01 00:00:00', 3.82), 
    (4, '2022-01-01 00:00:00', 0.45),
    (1, '2022-01-01 01:00:00', 2.00),
    (2, '2022-01-01 01:00:00', 1.82),
    (3, '2022-01-01 01:00:00', 3.09);
    
    SELECT date, SUM(d1), SUM(d2), SUM(d3), SUM(d4) FROM (
    SELECT date,
    CASE WHEN device=1 THEN metric ELSE NULL END AS d1,
    CASE WHEN device=2 THEN metric ELSE NULL END AS d2,
    CASE WHEN device=3 THEN metric ELSE NULL END AS d3,
    CASE WHEN device=4 THEN metric ELSE NULL END AS d4
    FROM data
    ) nested
    GROUP BY date;


    https://sqlize.online/sql/mysql80/68e677a2fc577e6c...
    Ответ написан
    2 комментария