💡 Совет

Полезные запросы в 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
Читайте также
Беларусь.Яндекс.Деньги
Беларусь.Яндекс.Деньги
Думаю, многие из читателей этого блога занимаются фрилансом, а для многих это и один из основных способов заработка. Конечно же,...