Задать вопрос
  • Как правильно исключить пользователя из запроса?

    LaRN
    @LaRN
    Senior Developer
    Попробуйте так:
    select e.mark, course, g.name, s.name, lastname, surname, p.name, f.name from students s
    left join groupa g on s.group_id = g.id
    inner join exam_mark e on s.id = e.student_id
    inner join peciality p on g.peciality_id = p.id
    inner join facult f on p.facult_id = f.id
    where e.mark >= 4
        and not exists (select 1 
                                   from exam_mark e1
                                 where e1.student_id = s.id
                                     and e1.mark        <> 2)
    Ответ написан
    2 комментария
  • Как вывести имена клиентов банка, у которых сумма зачислений выше средней суммы зачисления?

    Adamos
    @Adamos
    1. Написать запрос, выводящий счета, у которых сумма зачислений больше нуля.
    2. Написать на основе п. 1 запрос, выводящий имена клиентов, которым принадлежат счета, у которых сумма зачислений больше нуля.
    3. Написать запрос на вычисление среднего зачисления
    4. Заменить в запросе из п. 2 ноль подзапросом из п. 3
    Ответ написан
    Комментировать
  • Не проходит авторизация?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Прочитайте внимательно про биндинг, а точнее про именованные и неименованные псевдопеременные, а то у вас каша получилась.
    Ответ написан
    Комментировать
  • Как передать массив из input в БД?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для начала вам надо правильно спроектировать базу данных.
    Многострочные документы классически делятся на две части - заголовок документа orders (order_id, client_id, state, ...) и табличную часть ordrers_rows (order_id, goods_id, quantity, price). В табличную часть делается одна запись для каждой строки заказа. Таким образом, никакие массивы записывать в таблицу не надо.
    Ответ написан
    Комментировать
  • Как выбрать нужные записи из бд?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT *
    FROM table
    ORDER BY user_id = @user_id DESC, id DESC LIMIT 1

    Если заданный @user_id есть - вернётся соотв. запись. Если таких записей несколько - вернётся запись из них с максимальным id. Иначе вернётся просто запись с макс. id.

    Если же под "Если есть user_id вернуть запись с user_id" разумеется "ну хоть какой-то, лишь бы не NULL", то
    SELECT *
    FROM table
    ORDER BY user_id IS NULL, id DESC LIMIT 1
    Ответ написан
    Комментировать
  • Как корректно подставлять текст к ссылке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как можно реализовать это?
    Если я правильно понял, вам нужно сравнение без кейс сенситив.
    Будем считать что у вас адекватный архитектурный подход и для хранения данных используется БД. Тогда вариантов два:
    1) Магия strtolower(). При регистрации все данные перегоняем в нижний регистр и так и записываем. Соответственно перед выборкой тоже делаем искомой строке strtolower().
    2) Задаем таблице кодировку с постфиксом _ci, то есть кейс инсенситив. Тогда выборка будет игнорировать регистр, и в выборке GazEs12 = gazes12.
    Ответ написан
    7 комментариев
  • Корректно ли генерировать SQL без использования query-builder?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Корректно. Но если вы не пользуетесь билдером то вам придется вручную отслеживать открывающие и закрывающие скобки в тек местах где есть приоритет и вручную форматировать отступы и переносы если есть такое требование. Тоесть в какой-то момент времени сложность кодогенерации перейдет с билдера в ваш рукотворный код и вам эту сложность также придется поддерживать и объяснять ее происхождение коллегам.

    Кстати на каком языке вы разрабатываете? Для Java есть готовые билдеры в QueryDSL, JooQ.
    Ответ написан
    3 комментария
  • Как залить файл Excell в Mysql через консоль или по крону?

    @AVKor
    XLSX - писать скрипт на ЯП, который знаете и который умеет работать с XLSX (наверно, любой ЯП общего назначения умеет).

    CSV - штатными средствами встроенного клиента MySQL
    LOAD DATA LOCAL INFILE...
    Ответ написан
    8 комментариев
  • Как разбить Date и Time в PostgreSQL запросе?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Ну что за детский сад?

    SELECT '2022-04-01 09:23:45'::DATE, '2022-04-01 09:23:45'::TIME
    Ответ написан
    Комментировать
  • Как лучше проверять строку на пустоту в php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    if ($str === '')
    Ответ написан
    Комментировать
  • Как синхронизировать столбцы в SQL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если связь между значениями - статическая, жёсткая и никогда не изменяемая, то используйте вычисляемое поле (generated column). Если значение поля, от которого зависит другое поле - числовое от единицы и далее, можно обойтись одним полем типа ENUM.

    Если же связь более сложная и/или может меняться со временем, то гораздо разумнее не заполнять второе поле в зависимости от первого, а использовать его значение как ссылку (foreign key) в словарную таблицу.

    Крайний случай - использование BEFORE INSERT/UPDATE триггеров.
    Ответ написан
    Комментировать
  • Как перенести контейнер Docker на другую машину?

    IgorPI
    @IgorPI
    1. Копируете файлы базы данных на хост
    2. Архивируете/Переносите
    3. Поднимаете проект на другом хосте
    4. Копируете файлы с хоста в контейнер

    В вашем распоряжении есть
    docker compose cp

    https://docs.docker.com/engine/reference/commandli...

    А вообще не вижу проблем с созданием полного дампа с последующим восстановлением.

    docker-compose exec [service] mysqldump -u [user name] –p [password] [options] [database_name] [tablename] > [dumpfilename.sql]


    Или

    docker exec -t [hash container] mysqldump -u [user name] –p [password] [options] [database_name] [tablename] > [dumpfilename.sql]
    Ответ написан
    Комментировать
  • PDO PHP проверить выполнение INSERT?

    New_Horizons
    @New_Horizons
    Бред:
    try catch
    Ответ написан
    Комментировать
  • Почему не работает интервал в PostgreSQL?

    @Akela_wolf
    Extreme Programmer
    Вычитаем одну дату из другой, получаем interval, с которым, затем, можно делать все что хочется.
    Например вытащить EPOCH (т.е. число секунд в интервале)
    SELECT t.*, EXTRACT(EPOCH FROM finished_at - started_at) / 60 as duration FROM test t


    Весь пример
    Ответ написан
    Комментировать
  • Как выполнить запрос SQL с условием?

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

    Уникальный индекс по полю nickname
    чтобы запись добавилась только при условии, что прошло времени с текущей даты 24 часа

    Сформулировано непонятно. Если речь идет о том что запись должна стать "видима" через 24 часа после добавления, то можно попробовать так:
    1. Добавляем в таблицу колонку active_since
    2. В приложении (или триггером на вставку) пишем туда нужную дату (текущую + 24 часа)
    3. Делаем VIEW, на котором вешаем условие active_since <= NOW()
    4. Селекты делаем не из таблицы, а из VIEW.

    Но это в какой-то степени извращение. Подозреваю что вашу проблему можно решить проще.
    Ответ написан
    Комментировать
  • Почему выдает ошибку запрос?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    очевидно что запрос который вы написали в вопросе отличается от того, который у вас реально выполняется, так как в ошибке явно указана другая строка '&quot), курите код, вы явно где-то косячите по символам.
    Ответ написан
    Комментировать
  • COPY в Postgresql?

    @galaxy
    Слейте все в один файл.
    Под *nix одной командой:
    tail -qn +2 files/*.txt > data.csv
    (если все файлы в одной папке files)

    Ну либо берете список файлов (из вывода dir / ls) и, допустим, в продвинутом текстовом редакторе дописываете к каждому названию куски команды COPY. Получится один большой скрипт
    Ответ написан
    1 комментарий
  • COPY в Postgresql?

    Написать скрипт на баше, который будет вызывать psql подменяя путь к файлу
    Ответ написан
    Комментировать
  • Можно ли хранить данные не в БД, а в JSON файле?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Можно, но это будет очень глупо, особенно по причине "снизить нагрузку на БД". Не переживайте, пупок у СУБД не развяжется от ваших пяти посетителей в месяц, просматривающих семнадцать товаров. Он не развяжется даже при объёмах на пять порядков больших.
    Плюсов у такого подхода примерно ноль в обычных проектах, а минусы - всё остальное.
    Ответ написан
    5 комментариев
  • Почему json_encode превращает число в строку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что из PDO вернулась строка.
    https://qna.habr.com/q/968945
    Ответ написан
    Комментировать