SELECT *
FROM test
ORDER BY CASE status WHEN 'cancelled'
THEN 1
ELSE 2
END;
Трата состоит из трех этапов. Чтение баланса пользователя, проверка хватает ли средств и собственно запись нового баланса.
баланс юзера расчитывается на лету и не хранится в юзере. Расчитывсется на основе истории его пополнений/расходов.
Если в многопоточном приложении произойдет так что два потока прочитают баланс, проверят хватает ли средств на покупку и этот этап пройдет успешно для обоих, то далее последуют две записи, которые загонят юзера в минус. Какие есть варианты защиты от двойной траты?
при подключении провода подключение Wi-Fi автоматически гаснет.
Железка имеет DHCP, сразу выдаёт адрес
Windows 10 игнорирует метрики, в зарубежных гайдах говорят "Перестала уважать метрики". Т.е. нет никакой разницы, если поставить "999" метрику на Ethernet и "1" на Wi-Fi
Если я на каждый столбец, который используется в WHERE добавлю одиночные индексы, не ухудшит ли это производительность?
пока не понятно, какие индексы нужны, а какие нет.
Нужно получать курс первого дня, для выбранного периода - first, и последнего дня - last. Чтобы высчитать разницу. После чего {last} - {first} = {Х}. И вот по этому {Х} делать сортировку выборки.
SELECT DISTINCT
coin_uuid,
FIRST_VALUE(price) OVER (PARTITION BY coin_uuid ORDER BY last_updated ASC) firstprice,
FIRST_VALUE(price) OVER (PARTITION BY coin_uuid ORDER BY last_updated DESC) lastprice
FROM exchange_rates
ORDER BY coin_uuid, lastprice - firstprice
Сколько учетных записей должно быть у администратора?
SELECT *
FROM user_friend uf1
WHERE [NOT] EXISTS ( SELECT NULL
FROM user_friend uf2
WHERE uf2.friend_user_id = uf1.user_id )
AND friend_user_id > user_id
. Очень мешает откуда-то самопроизвольно возникающая схема mydb, которую я не могу удалить.
таблицы стали создаваться именно в ней, а не в той схеме с которой я работаю
CREATE TABLE dbname.tablename ( .. );
) - таблица будет создана именно в указанной БД. Если же имя БД не указать - таблица создаётся в текущей БД. Почему у Вас именно эта БД текущая, и почему Вы не меняете её перед созданием таблиц запросом USE - это именно к Вам вопросы, и именно Ваша вина в том, что таблицы создаются "не там". WITH
cte1 AS ( SELECT id, col1 val FROM test UNION ALL
SELECT id, col2 FROM test UNION ALL
SELECT id, col3 FROM test ),
cte2 AS ( SELECT id, GROUP_CONCAT(val ORDER BY val) FIO
FROM cte1
GROUP BY id )
SELECT test.id, test.col1, test.col2, test.col3, GROUP_CONCAT(cte2_2.id) ids
FROM test
JOIN cte2 cte2_1 USING (id)
JOIN cte2 cte2_2 USING (FIO)
GROUP BY test.id, test.col1, test.col2, test.col3
id col1 col2 col3 ids
1 Иванов Иван Иванович 1,2
2 Иван Иванович Иванов 1,2
3 Петров Сергей Алексеевич 3,4,5
4 Петров Сергей Алексеевич 3,4,5
5 Сергей Алексеевич Петров 3,4,5
DEMOвыполняться будет на MS SQL Server, версию не могу сказать.
что эффективнее: хранить в записи список id объектов, которые должны быть обработаны при обращении к этой записи, в виде строки (скрипт будет парсить строку и отрабатывать каждый id), либо сделать триггер и хранимую процедуру (MySQL), которая возьмёт эту работу на себя?