Генерация ошибки

SIGNAL SQLSTATE VALUE '99999' SET MESSAGE_TEXT = 'An error occurred';

DISTINCT vs GROUP BY

Следующие два запроса дадут один и тот же результат.

SELECT DISTINCT folder_id FROM user_to_folder ORDER BY folder_id LIMIT 10
SELECT folder_id FROM user_to_folder GROUP BY folder_id ORDER BY folder_id LIMIT 10

Пакетное добавление и обновление записей

INSERT INTO sometable (id, x, y)
VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9)
ON DUPLICATE KEY UPDATE x = VALUES(x), y = VALUES(y);

Выбрать записи по списку ID, соблюдая порядок

SELECT *
FROM news
WHERE id IN (2, 10, 3, 88, 23)
ORDER BY FIELD (id, 2, 10, 3, 88, 23)

Получить список всех таблиц в определенной базе данных вместе с объемом данных и количеством строк

SELECT
  table_schema,
  table_name,
  ROUND(((data_length + index_length) / 1024 / 1024), 2) AS `size (mb)`,
  SUM(table_rows) AS `rows`
FROM
  INFORMATION_SCHEMA.tables
WHERE
  table_schema = 'some_database'
GROUP BY
  table_schema,
  table_name
ORDER BY
  (data_length + index_length) DESC