💡 Совет

Полезные запросы в MySQL

19.11.2019 1 минута чтения

В этой статье собраны некоторые, на мой взгляд, интересные и полезные запросы в MySQL. Список будет пополняться в будущем. Выбор записей с повторяющимся значением поля N раз. Замените в запросе N на конкретное число.

SELECT *
FROM `table_name`
GROUP BY `column_name`
HAVING COUNT(*) = N;

Событие, которое срабатывает 1 раз в час и удаляет записи из таблицы.

SET GLOBAL `event_scheduler` = ON;
CREATE EVENT `hourly_event`
ON SCHEDULE EVERY 1 HOUR
DO
DELETE FROM `table_name`;

Получение название поля, которое является первичным ключом в таблице.

SELECT `COLUMN_NAME`
FROM `information_schema`.`COLUMNS`
WHERE `TABLE_NAME` = 'table_name'
AND `COLUMN_KEY` = 'PRI';

Получение размера баз данных MySQL.

SELECT `table_schema` AS `Db name`,
ROUND(SUM(`data_length` + `index_length`) / 1024 / 1024, 3) AS 'Db size(MB)'
FROM `information_schema`.`tables`
GROUP BY `table_schema`;

Получение одной случайной записи.

SELECT *
FROM `table_name`
ORDER BY RAND()
LIMIT 1;

Получение записей с повторяющимися значениями поля и количества повторений.

SELECT `column_name`, COUNT(`column_name`) AS `count`
FROM `table_name`
GROUP BY `column_name`
HAVING `count` > 1;

Поиск двух обратных слэшей. Запрос найдет все записи, в которых присутствует «\\».

SELECT *
FROM `table_name`
WHERE `column_name`
LIKE '%\\\\\\\\%';

Данный запрос сгруппирует все записи по `column_name` с максимальной датой для текущего значения.

SELECT *
FROM `table_name` AS `t1`
WHERE `column_date` =
(SELECT MAX(`column_date`) FROM `table_name` AS `t2` WHERE `t1`.`column_name` = `t2`.`column_name`);

Выборка информации о внешних ключах таблицы.

SELECT `COLUMN_NAME`, `CONSTRAINT_NAME`, `REFERENCED_TABLE_NAME`, `REFERENCED_COLUMN_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `TABLE_NAME` = 'table_name'
AND `CONSTRAINT_NAME` <> 'PRIMARY';

Определение количества слов в столбце.

SELECT LENGTH(`column_name`) - LENGTH(REPLACE(`column_name`, ' ', '')) + 1 AS `words_count`
FROM `table_name`;
Экспертное мнение Алексей

В веб-разработке с 2012 года. Специализируюсь на PHP, JavaScript и архитектуре высоконагруженных проектов. Автор статей по оптимизации, API и базам данных.

Все статьи автора →
Telegram VK Twitter
Читайте также
Senior PHP Developer. Упрощенный T9 алгоритм
Senior PHP Developer. Упрощенный T9 алгоритм
Представьте, что вы сейчас проходите собеседование на должность PHP Senior Developer. Очень вероятно, что вас могут попросить реализовать какой-то упрощенный...