Задать вопрос
  • Как получить количество пользователей с 2 заявками?

    @Akina
    FanatPHP, я как-то слабо понимаю суть вашего спора. И мне сдаётся, что он уже слабо связан с исходным вопросом, ибо непонятно откуда, но вылезли заданные значения event_id, которые в исходном вопросе не определены. К тому же не вижу смысла обсуждать абстрактно, какой способ связывания выберет сервер, проще посмотреть план - а он, в свою очередь, критично зависит от наполнения и статистики.

    Но для меня главное - то, что к каждому событию прилагается определённый пользователь. Что, в свою очередь, означает, что заявки интерактивные, а количество записей невелико. А потому - ну не похрен ли? как запрос не построй, всё одно он будет быстрым, даже если в таблице вообще индекса нет, и даже если сервер решит, что записи надо отсортирить перед связыванием.

    Да, если говорить о предложенных решениях, то подзапрос на выборку имеющих заявки на не менее чем 2 разных эвента я бы построил как
    SELECT user_id FROM events GROUP BY user_id HAVING MIN(event_id) < MAX(event_id)

    Так он будет немного быстрее, ибо индекс (user_id, event_id) будет использоваться полностью, а не как компактная версия таблицы. Если такой индекс, конечно, есть...
  • Как сделать селект из колонки с массивом чисел?

    @Akina
    FasterTans,
    Как переписать, чтоб искало строки в которых есть и 47 и 3 по отдельности?

    В постгрессе нет встроенной функции, проверяющей на пересечение.
    Так что парсить критерий на отдельные значения (unnest), проверять, группировать.
  • Почему не выполняется код?

    @Akina
    galaxy, Там в начале ещё пустая строка, но она не отображается... так что в пятой.
  • Как сделать чтобы sql не выдавала синтаксическую ошибку?

    @Akina
    Добавь в вопрос значение переменной sql после подстановки значения параметра и полное сообщение об ошибке для именно такого значения переменной.

    PS. О том, что в строковых литералах надо некоторые символы экранировать - в курсе? причём как в питоне, так и в мускуле.
  • Как получить количество пользователей с 2 заявками?

    @Akina
    sl0,
    Поскольку двух заявок на одно событие быть не может

    ... то сразу возникает вопрос - а почему это не указано в вопросе?
  • Как получить количество пользователей с 2 заявками?

    @Akina
    у которых одновременно есть заявки на 2 разных события.

    ... having count(DISTINCT event_id) >= 2 ...
  • Как найти хаб в сети, если не знаешь где он?

    @Akina
    Не, а в чём проблема пройти по кабелю-то? ведь с гарантией не более ста метров...

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

    @Akina
    Что-то не помню я приборов (про мамкины тесты даже не заикаюсь), которые умеют определять длину кабеля, когда на дальней стороне висит активное оборудование.
  • Верно ли это утверждение?

    @Akina
    Человек, которому покласть с пробором на то, "как работает компьютер и технологии в целом", вполне может быть успешным программистом. Большинство программистов, которых язык не повернётся назвать неуспешными - не творцы, а обычные ремесленники.

    Это точно так же, как человек, которому насрать на перспективу, тени и состав красок, может быть вполне успешным маляром.
  • Что будет с базой, если во время выполнения запроса к MySQL выключится питание сервера?

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

    @Akina
    AND genres LIKE "%{ARG_GENRES}%"
    Это фигня.
    AND LOCATE(genres, REPLACE({ARG_GENRES}, '|', ',')
    При этом сами genres не должны содержать запятых, а передаваемый параметр - паразитных пробелов между разделителем и значением.
  • Как написать правильный sql запрос для фильтрации и вывода фильмов?

    @Akina
    Каждый мультипараметр разворачиваешь, потом кроссджойнишь всё это и получаешь набор критериев для натурального соединения.

    Я ведь правильно понимаю, что:
    ARG_GENRES = 'Sci-Fi|Action' - это запрос на фильмы, которые помечены хотя бы одним из тегов списка?
    REGEXP = 'Terminator' - это всегда подстрока? или там реально может быть паттерн?

    Ну и уж коли захотелось задавать "фильтр по количеству строк в выводимом результате" - то неплохо бы указать точную версию SQL-сервера. А для того, чтобы народ мог проверить свои предложения - создай online fiddle (или хотя бы выложи CREATE TABLE + INSERT INTO) и дай пару наборов (список критериев + требуемый результат на этих данных).
  • Что лучше выбрать MariaDB or Mysql?

    @Akina
    ChairfaceChippendale, версионка. Впрочем, как по мне, это единственный реально значимый плюс у машки по сравнению с мускулем, хоть и сделанный откровенно через задницу.
  • Что лучше выбрать MariaDB or Mysql?

    @Akina
    FanatPHP, я бы поостерёгся говорить, что у MySQL и MariaDB различия - чисто косметика. Там столько всего накопилось разного, что куда как спокойнее считать их вообще разными СУБД. И мелкие доделки, подтаскивающие второе к первому, ничего не меняют, потому что первое ко второму подтаскиваться не будет даже в теории, равно как из второго выпиливаться различия также не будут.

    А вот насчёт того, что общего у них всё же овердохрена - это стопроцентно.
  • Что лучше выбрать MariaDB or Mysql?

    @Akina
    Кто пользовался и тем и тем, ваш совет?

    Сугубо ИМХО - MySQL.
  • Как проверять, что запись в таблицы прошла успешно?

    @Akina
    как сделать уникальный индекс?
    Я так понял это не классический id?

    CREATE INDEX Statement

    Индексы бывают:

    - Обычные. Просто список (значение выражения индекса + ссылка на запись), отсортированный по значению выражения.
    - Уникальные. То же, что обычный, но дополнительно на значение выражения наложено ограничение уникальности, т.е. невозможно создать вторую запись с уже имеющимся значением выражения. Если выражение индекса имеет значение NULL - все такие значения считаются уникальными.
    - Первичные. То же, что уникальный, но дополнительно на значение выражения, и, соответственно, на значение каждого поля, используемого в выражении, накладывается ограничение NOT NULL. В таблице не может быть более одного первичного индекса.
  • Как вывести нужную строку (оператор LIKE)?

    @Akina
    Евгений Иванов, Вы неправильно понимаете, что такое нормализованные данные. CSV , а также JSON, XML и так далее- это ДЕНОРМАЛИЗАЦИЯ. Всё.

    Если бы одному пользователю нужно было бы показать информацию - то джоин.
    Но тут информация предназначена нескольким пользователям.

    Это результат неверного понимания и, как следствие, некорректно проделанного анализа. Следствием которого и явилась денормализованная структура.
  • Как вывести нужную строку (оператор LIKE)?

    @Akina
    Нормализовать.

    Очень временно - использовать FIND_IN_SET(). Но будет тормозить.
  • Как получить всю БД в виде csv?

    @Akina
    Untiwe,
    Благодаря INFORMATION_SCHEMA я уже могу посмотреть все таблицы в БД, но вот до выявления связей между ними пока не дошел

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

    Например, тут: SQL-1992, страница 535 и далее.
  • Как обозначить тип сортировки?

    @Akina
    FanatPHP, так я и не говорил, что индекс обязан быть числовым. Он должен быть распознаваем на стороне, которая общается с БД и, соответственно, уникален.