Задать вопрос
  • "Герберт Шилдт Полное руководство 10 издание" подходит для новичка в программровании?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Сам по себе вопрос дурацкий.
    Берите то что есть и изучайте. Есть две книги? Читайте обе!
    Читайте все книги, смотрите все лекции, посещайте все курсы.
    Ответ написан
    6 комментариев
  • Как выбрать значение по наибольшему ключу из объекта json?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Традиционный ответ: Не хранить в JSON данные, которые для этого не предназначены.
    А хранить их нормально - в предназначенной для этого связанной таблице.
    Ответ написан
    Комментировать
  • Почему в решении этого задания нужно использовать COUNT, а не SUM?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Когда вам нужно посчитать КОЛИЧЕСТВО монет у вас кармане - вы НЕ суммируете их номинал SUM(все_монеты) = 5 р. + 2 р. + 1 р. + 1 р. = 9 р., а считаете именно их количество COUNT(все_монеты) = 1 монета + 1 монета + 1 монета + 1 монета = 4 монеты.
    Теперь чувствуете разницу?

    P.S. А в запросе лучше сделать COUNT(place), потому что на пассажира с ребёнком (один паспорт, один passenger) должно быть зарегистрировано два места.
    Ответ написан
    Комментировать
  • Как вывести все остальные поля при операции GROUP BY?

    @Akina
    Сетевой и системный админ, SQL-программист.
    WITH cte AS (
        SELECT *, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY score DESC) rn
        FROM source_table
    )
    SELECT *
    FROM cte
    WHERE rn = 1
    -- ORDER BY score DESC LIMIT nnn
    ;
    Ответ написан
    Комментировать
  • Почему не могу подключить php к базе данных MySQL?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Посмотрите внимательно - у вас даже здесь подсветка кода ломается из-за синтаксической ошибки.
    - echo "id: " . $row["nickname"]. " - Name: " . $row["result"]. " . "<br>";
    + echo "id: " . $row["nickname"] . " - Name: " . $row["result"] . "<br>";
    Ответ написан
    Комментировать
  • Как быстро найти совпадение в базах?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT *, 'db1' AS dbasename
    FROM db1.tablename
    WHERE phone = '123-45-67'
    UNION ALL
    SELECT *, 'db2'
    FROM db2.tablename
    WHERE phone = '123-45-67'
    UNION ALL
    ...

    Если список баз не фиксирован и должен формироваться в рантайме - то хранимая процедура с запросом по INFORMATION_SCHEMA.TABLES и динамическим SQL.
    Ответ написан
    Комментировать
  • Будет ли использоваться индекс в запросе вида WHERE `field1` LIKE '_aa_a_'?

    @Akina
    Сетевой и системный админ, SQL-программист.
    будет ли использоваться индекс в запросе вида WHERE `field1` LIKE '_aa_a_'?

    50/50 - или будет, или нет.

    Однако если он будет использоваться, то не как индекс (сортированный список для выполнения index seek), а как компактная копия таблицы (как несортированный список для выполнения index scan).

    Тем не менее профит от использования индекса таким образом может быть, и весьма значительный. Главным образом он определяется соотношением размера записи к размеру поля. И чем это соотношение выше, тем более вероятен профит.
    Ответ написан
    1 комментарий
  • Будет ли использоваться индекс в запросе вида WHERE `field1` LIKE '_aa_a_'?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Нет разницы, один или 10.
    Для простоты индекс можно рассматривать как отсортированный список.
    Если список учеников в классном журнале отсортирован по алфавиту, то вы довольно быстро найдёте нужного.
    А теперь представьте, что вы по тому же самому списку ищете фамилию, на зная первой буквы. И тут уже без разницы, сколько букв мы не знаем. И одной достаточно, чтобы полностью поломать поиск.

    Точно такие же проблемы будут и у базы данных. Вместо отсортированного списка с выходом сразу на нужную букву, придётся тупо искать перебором.

    Полнотекстовый индекс также не является чем-то особенным в этом плане. Он устроен по совершенно тупому принципу: грубо говоря, БД берёт текст из колонки, и разбивает его на слова. И строит по этим словам снова точно такой же отсортированный список, с указанием, в каких строках это слово используется. То есть когда мы делаем запрос с match, то mysql находит искомое слово в индексе, и возвращает из него все строки.

    И точно так же полнотекстовый индекс не работает, если поставить звёздочку спереди. Мануал так и говорит:
    Words match if they begin with the word preceding the * operator

    То есть звездочка работает только если поставить её в конце слова.
    match against ('класс*') найдёт слово "классный", а '*accный' его уже не найдёт.
    То есть БД тебе сразу говорит, что для такого поиска полнотекстовый индекс будет бесполезен.
    Ответ написан
    Комментировать
  • Как вычесть число в SQLite?

    @kapp1
    UPDATE users SET grade = (grade + ?) WHERE id = ?”, (-1, 4)
    Ответ написан
    1 комментарий
  • Как стать пентестером (bug bounty)?

    @VolgaVolga
    Исскусство поиска освоить ты должен.
    Тут и там.
    Ответ написан
    Комментировать
  • Почему mysql запрос с php медленный?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    "Расчлените" код.
    Чудес в общем то не бывает, если код работает медленно, то что то тормозит, ваша задача упростить код до минимума с сохранением тормозов. Когда вы еще более упростите вы поймете где ошибка.
    То есть кстати в вашем случае первый кандидат это changelog 8 mysql Смотрите на изменения
    Ответ написан
    Комментировать
  • Как объединить два запроса к базе?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Используйте Union
    https://www.w3schools.com/sql/sql_union.asp
    правда придется править запрос что бы названия столбцов совпадали
    Ответ написан
    Комментировать
  • Делаю changelog на pgsql выходить ошибка, как решить?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Проверьте ваш синтаксис. Кажется, с ним что-то не то.
    https://www.postgresql.org/docs/current/sql-altert...
    Ответ написан
    Комментировать
  • Как ввести лист в ячейку mysql?

    Vindicar
    @Vindicar
    RTFM!
    Не нужно пихать структуру данных в ячейку БД. Выдели под элементы списка отдельную таблицу (отдельные таблицы) и свяжи её с основной таблицей по ключу.
    Ответ написан
    Комментировать
  • Почему не нужно заранее объявлять массив?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Почему не нужно заранее объявлять массив?


    Как правильно заметили в комментарии выше, "это РНР, тут так можно".
    Раньше вообще можно было инициализировать переменную как строку, и потом обращаться к ней, как к массиву.
    Начиная с 7 версии начался отход от таких вольностей, но он всё ещё в процессе.

    Значит то что пишут $result = [] Это я удобства?


    Не для "удобства", а для того, чтобы волосы на голове сохранились подольше.
    В данном случае нужды в явном присвоении нет.
    Но любой код со временем изменяется. И функция tower_builder() может разрастись. Там появится ещё один цикл, который работает с массивом $result. Который получит какое-то значение до начала нашего цикла, и в итоге конечный результат будет неправильным. Поэтому $result = [] перед началом работы с массивом - это не каприз или удобство, а необходимость
    Ответ написан
    Комментировать
  • Какие инструменты нужны для разработки игр?

    @MarkusD
    все время мелю чепуху :)
    Сегодня существует ровно два базовых направления разработки конкретного коммерческого проекта.
    Способ первый: купить лицензию или подписку на уже готовый инструмент разработки и заняться непосредственно разработкой своей игры.
    Способ второй: иметь в своем штате команду разработчиков собственного инструмента, на базе которого можно заняться разработкой своей игры.

    Первый способ популяризирует публичные универсальные инструменты разработки.
    Второй способ эксплуатирует проприетарные инструменты.

    Первый способ отдает разработку и поддержку движка на аутсорс непосредственно разработчикам инструмента, часто за отдельную плату, часто сопровождаясь или длительным ожиданием, или отсутствием гарантий внедрения требуемых решений.
    Второй способ позволяет быть на короткой руке непосредственно с разработчиками инструмента, но требует от разработчиков экспертности знаний в требуемых для разработки областях. С одной стороны таких людей очень сложно найти, с другой стороны таким людям надо очень много платить.

    DirectX, Vulkan и OpenGL, равно как Metal и ряд проприетарных GAPI некоторых закрытых платформ, не являются графическими библиотеками. Это все - Graphics Application Programming Interface - GAPI.
    Это - низкоуровневые интерфейсы драйвера GPU, позволяющие эксплуатировать ресурсы видеокарты в своих целях. Не только для рисования чего-то, а для ИИ, ML, сложных статистических вычислений, предсказаний и прочих расчетов на больших объемах данных.
    Под капотом любого инструмента, будь-то проприетарный или публичный, в его графическом слое используется один или несколько GAPI. Без этого никак.
    OpenGL, как и DirectX 11, нисколько не устарели, поскольку предоставляют упрощенный интерфейс управления ресурсами GPU. Они используются тогда, когда разработчикам не нужны самые тонкие механизмы управления ресурсами GPU, которые предоставляют DirectX 12 или Vulkan. Потому что последние, помимо прочего, требуют от разработчиков более глубокой экспертизы и больше ресурсов на разработку всего того же, что на OpenGL и DirectX 11 реализуется меньшими силами и за меньшее время.

    И нет, одним только инструментом, на базе которого ведется разработка игрового проекта, не обойтись. Все ресурсы разрабатываются в других инструментах: графических редакторах, звуковых редакторах, редакторах анимаций, редакторах баз данных. Пайплайны производства ресурсов являются очень сложными, могут насчитывать десятки инструментов для производства одного только типа ресурсов и требуют от артистов экспертизы в использовании этих инструментов. И часть таких инструментов обязательно будет проприетарными, созданными или под конкретный проект, или внутри конкретной компании. И иногда такие инструменты удобнее создавать с применением других, более мелких или лучше заточенных под задачу, движков. Игровой движок не всегда используется для создания игр.
    Отдельно стоит в этом вопросе код игровой логики и шейдеров. Для этого тоже нужны специалисты и инструменты.

    Информации по каждой отдельной области разработки игр хоть отбавляй. Ее настолько много, что одному человеку за жизнь не усвоить. Поэтому от современного специалиста сегодня требуется спрофилироваться, т.е. определиться со своим профилем работы и стать экспертом.
    Я больше 15 лет занимаюсь разработкой игровых движков и медиаферймворков. Более 10 лет занимаюсь коммерческой разработкой кросслпатформенных инструментов. Я начинал свое обучение по книгам и документации для всех интересующих меня областей еще 20 лет назад. Я самостоятельно освоил множество API, включая графические, сетевые, звуковые и API целевых платформ, используя книги и документацию. Экспертные знания C++ и прочих языков я получил тоже через изучение документации, стандартов и книг.
    Я могу сказать что обучаться по книгам и документации можно и самостоятельно. Еще можно заплатить деньги и получить более точечные знания через их интерпретацию на распространенных сегодня онлайн-курсах. Такие знания не всегда бывают лучше полученных самостоятельно, но времени на освоение того же объема знаний на курсах уйдет меньше чем при самостоятельном изучении. Иными словами, занятия на онлайн-курсах не отменяют важности самостоятельного изучения основных источников информации.
    По открытым видеоурокам на ютубе и прочих видеохостингах обучаться нечему. Цель этих видео - чтобы зритель посмотрел рекламу и этим принес доход автору.
    Ответ написан
    2 комментария
  • В чем ошибка в запросе?

    iMedved2009
    @iMedved2009
    Не люблю людей
    Вы INSERT с UPDATE перепутали. INSERT c where не бывает
    Ответ написан
    1 комментарий
  • Как получить нужные данные?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Может, требуется тривиальное
    SELECT *
    FROM tablename
    ORDER BY client_id IS NULL, hub_id IS NULL
    LIMIT 1

    ?
    Ответ написан
    1 комментарий
  • Справится ли движок Mysql с несколькими тысячами запросов в секунду?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Правильно настроенный Mysql на правильно подобранном железе без особых проблем справится с тысячей правильно составленных запросов в секунду к правильно спроектированной БД.
    Ответ написан
    Комментировать
  • Как округлять числа?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    нет точного условия

    1256 => 1300, а почему не 1250?
    138 => 140, а почему не 100?

    ну а в целом, если нужно округление, например до сотен, то делим на 100, округляем и умножаем на сто.
    Ответ написан
    3 комментария