Полезные функции MySQL

Приветствую вас Читатели. В этой статье я хотел собрать некоторые полезные функции и приёмы для работы с базой данных MySQL.

  1. сортировка строкового поля (varchar,char) как числового:

    Допустим у нас есть табличка, с полем `sku` типа varchar, в котором хранятся строки начинающиеся с цифр (различные коды товаров или счетов фактур).

    CREATE TABLE IF NOT EXISTS `test` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `sku` varchar(100) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    ID text
    1 123
    2 11231
    3 1125
    4 1123b
    5 1123a

    делаем обычную сортировку по возрастанию

    SELECT * FROM `test` ORDER BY `sku` ASC

    и получаем вот что, совсем не то что ожидалось

    ID text
    2 11231
    4 1123b
    5 1125a
    3 1125
    1 123

    так получается, потому что MySQL рассматривает числа как строки и сортирует их по кодам символов. Чтобы избежать этого нужно добавить
    ORDER BY cast(«поле для сортировки» AS signed),
    то есть в нашем случае

    SELECT * FROM `test` ORdER BY cast(`sku` AS signed)

    после выполнения запроса получаем необходимую сортировку

    ID text
    1 123
    4 1123b
    5 1124a
    3 1125
    2 11231
  2. получение случайной записи из таблицы

    Эта функция полезна для показа скажем случайного отзыва клиента или случайного поста.
    Для получения такой записи, мы сначала сортируем таблицу в случайном порядке с использованием функции RAND(),затем берём первую запись, запрос выглядит прмерно так:

    SELECT * FROM `table` ORDER BY RAND() LIMIT 1
  3. убрать дубликаты строк по нескольким поля

    Чтобы убрать дублирующиеся записи из таблицы по нескольким полям, можно использовать оператор GROUP BY а необходимые поля соединить знаком «+»  ( `имя_поля1`+`имя_поля2`+…):

    SELECT * FROM TABLE WHERE `sender`='%d' OR `addressee`='%d' GROUP BY `sender`+`addressee`

 

3 комментария

  1. Классная статья, пользуюсь случаем и хочу пропиарить свой первый проект, https://vk.com/flokirovanie_na_zakaz_kharkovhttps://vk.com/flokirovanie_na_zakaz_kharkov Буду рад посещению в группу

  2. PHP предоставляет еще несколько полезных функций, которые позволяют узнать информацию о результах SQL-запросов.

  3. PHP предоставляет еще несколько полезных функций, которые позволяют узнать информацию о результах SQL-запросов.

Добавить комментарий

Яндекс.Метрика