• Как вывести элемент, если нет связи many to many?

    @Akina
    Slava Rozhnev, с этим - согласен. Достаточно редко встречается хорошо оформленный вопрос.
  • Как вывести элемент, если нет связи many to many?

    @Akina
    Rsa97,
    Вообще-то это делается наоборот

    Ну и фигня получилась. Второй JOIN превратил LEFT в INNER. Как итог - ни продуктов без категорий, ни категорий без продуктов в выходном наборе не будет.

    Сравни: https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=f672c7...
  • Как вывести элемент, если нет связи many to many?

    @Akina
    Я лично в упор не вижу ТРЕБУЕМОГО РЕЗУЛЬТАТА для выложенных исходных данных.

    не выводится product4, у которого нет ни одной категории, так вот, мне нужно, чтобы и он тоже выводился

    Добавь ещё в исходные данные категорию, к которой не относится ни один продукт (category5). И вот только после этого - показывай требуемый результат.
  • Как получить 10 самых часто встречающихся слов в поле?

    @Akina
    Евгений Обыкновенный, Ваша задача не определена даже наполовину. Так, некий протокол о намерениях, и никакой детализации.

    Общее решение таково - создаётся таблица тегов, создаётся таблица связи между записями и тегами. Подсчёт статистики по такой таблице, вполне очевидно, элементарен. А основная нагрузка - она ложится на процесс вставки новых записей. Которые парсятся на токены, и на их основании формируются записи в таблице связей и, возможно, выявляются значения-кандидаты на то, чтобы пополнить список тегов.
  • Как получить 10 самых часто встречающихся слов в поле?

    @Akina
    Нет. FULLTEXT вообще предназначен не для поиска на точное вхождение (хотя может решать и эту задачу, и даже достаточно эффективно).
  • Как получить случайное неповторяющееся во времени значение?

    @Akina
    я не понял, что за операция "нормализовать в имеющийся список"
    Сгенерированное число - это номер среди неиспользованных чисел. Так что надо увеличить его на столько, сколько чисел менее сгенерированного уже использованы.

    Пример.

    Скажем, надо генерить число от 1 до 9, и уже имеются (использованы) числа 1, 4, 8. Допустим, сгенерировано случайное 3. Нам нужно третье неиспользованное. Для указанного диапазона можно посчитать на пальцах, что это будет число 5. А алгоритмически - чисел в списке не менее сгенерённого - 1 (это число 1). Прибавляем 1, получаем 4. Чисел в списке не менее сгенерённого - теперь 2, то есть прибавляем ещё 1, получаем 5. Чисел в списке не менее сгенерённого - снова 2, так что нормализация завершена, результат 5.

    code_date должна попадать в интервал между now()-5min

    Гениально! Вообще-то "между" предполагает, что будут сообщены ДВА значения.
  • Как получить случайное неповторяющееся во времени значение?

    @Akina
    Это значение не должно повторяться нигде в таблице последние 5 минут между текущей/датой временем и значением в поле code_date.

    А поточнее можно? от now-5min до now или от now до now+5min? или вообще от now-5min до now+5min?

    А так - фигня вопрос. Случайное значение ты получаешь почти правильно - только диапазон следует заузить на столько, сколько записей имеется "в таблице последние 5 минут между текущей/датой временем и значением в поле code_date". А потом, когда случайное сгенерилось, надо его нормализовать в имеющийся список (грубо - прибавить количество записей, у которых число меньше сгенерённого, возможно, итеративно).
  • Можно ли сделать чтение лога медленных запросов mysql в десктопном приложении?

    @Akina
    сохраняешь список идентификаторов для проверки а следующем шаге, проверка - если какой то id остался с прошлой проверки - считать этот запрос медленным

    Что за ерунду Вы говорите... Id в выводе этой команды - это идентификатор соединения, никакого отношения к выполняемым запросам не имеющий. Соединение установлено - запись со своим Id появилась, и будет до тех пор, пока соединение не будет закрыто или разорвано. Вне зависимости от того, выполняются там какие-либо запросы или нет, медленные они или быстрые... а соединение event scheduler по вашей методике так и вовсе будет всегда в выводе, даже если ни одной event procedure нет.
  • Можно ли сделать чтение лога медленных запросов mysql в десктопном приложении?

    @Akina
    Slow query log - это самый обычный текстовый файл, пополняемый в задницу. Так что организовать его чтение - вообще не проблема. Прочитал, подписался на изменения (если надо на лету уведомлять о новых записях - ну или сам опрашивай длину файла), и всё...
  • Как написать функцию PIVOT?

    @Akina
    Как написать функцию PIVOT?

    Никак. В MySQL нет определённых пользователем функций, возвращающих набор записей.

    А вот запросом задача решается элементарно. Используй условную агрегацию.
  • Айди пользователя из беседы?

    @Akina
    https://xyproblem.info/
    Не надо рассказывать, как Вы неправильно решаете какую-то задачу. Опубликуйте саму задачу.
  • Почему Windows пингует Debian, только без интернета?

    @Akina
    Типичное "у меня в подполе происходит стук".
    Где полные сетевые настройки всех машин, включая сетевую подсистему VMM и хост-систему?
  • Как может быть реализована гибридная инфраструктура в образовательной организации?

    @Akina
    Два человека, работающие в институте, один сетевой администратор, второй руководит отделом менеджмента качества образования, ответили одинаково. Цитирую: "Это вообще о чём речь-то?".
  • Как правильно будет сделать JOIN?

    @Akina
    andry33822,
    Я верно понимаю, что в показанном скрипте в таблицу users_apikey заранее заносятся ключи, которые ни к кому не привязаны (в поле username пустая строка), и Вы хотите, чтобы при вставке юзера в таблицу users выбирался (по какому-то критерию или произвольно) один непривязанный ключ, и закреплялся за этим свежесозданным юзером присвоением значения в поле username?
  • Как правильно будет сделать JOIN?

    @Akina
    Ну скажем так - формулировка не получилась... выложите CREATE TABLE обеих таблиц, исходные данные, которые имеются, и желаемое состояние таблиц после вставки.
  • Как выполнить перенос базы данных из образа системы на новый сервер?

    @Akina
    Если есть бэкап структуры БД, соответствующий базе в образе, а версия сервера БД абсолютно та же - то процедура несложная. Создать пустую БД, извлечь файлы таблиц из образа, заменить пустые на полные (DISCARD + IMPORT TABLESPACE).

    Если бэкапа структуры нет - всё сложнее. Остановить сервер БД, спрятать куда-нить весь каталог данных (basedir), на его место положить каталог из образа, запустить сервер, сделать бэкап нужной БД, остановить сервер, вернуть на место каталог данных, запустить сервер, развернуть бэкап.

    Если же версия сервера не совпадает - то где-то установить сервер той же версии, и далее как описано выше.
  • Как реализовать доступ к файловому серверу только для локальных пользователей?

    @Akina
    А кто ещё может пытаться получить доступ к серверу? как именно, по каким каналам?
  • Как получить предпоследнюю запись ORACLE?

    @Akina
    ROW_NUMBER() в CTE с сортировкой по убыванию времени, затем выбрать только вторые записи.
  • Как выполнить запрос SQL с условием?

    @Akina
    Забудь про INSERT .. VALUES. Для условной вставки записей (да и для безусловной тоже) используй INSERT .. SELECT.

    прошло времени с текущей даты 24 часа

    ??? Это что такое было? Текущая дата - она потому и текущая, что здесь и сейчас. Если от неё прошло 24 часа, то текущая стала на 24 часа больше. И, блин, равна текущей.

    чтобы в БД не было такого nickname, который передаётся в $nickname

    Для этого в структуре таблицы должен существовать уникальный индекс по этому полю. Тогда и INSERT IGNORE начнёт работать как требуется - чтобы INGORE, сервер должен знать, по какому признаку надо IGNORE.

    А если в date в БД 03.05.2022, а текущая дата 04.05.2022

    В какой именно записи? с тем же nickname? тогда уникальный индекс должен быть по двум полям.
  • Импорт большого yml в mysql?

    @Akina
    Я бы скормил его MySQL прям как есть. А там разобрал его на части и разложил по таблицам. Сложность процедуры зависит от структуры файла, но в любом случае сомневаюсь, что будут проблемы.