Как посчитать количество одинаковых записей в таблице.

Категории: SQL
Пометки: Дубли, копии, одинаковые,

Во многих языках программирования есть функция implode, позволяющая преобразовать массив в стоку с разделителем.

В SQL, и в частности в MySql , есть аналогичная возможность:

 
SELECT GROUP_CONCAT(`id`) AS id_list FROM `products` WHERE 1

Но стоит учесть, что длинна результирующей строки, в MySql, ограничена 1024 символами.
При этом, при если результат буде т длиннее, то ошибки не будет, а строка просто будет обрезана.

Поэтому, стоит сначала изменить максимальную длину:

 
SET SESSION group_concat_max_len = 1000000;


Категории: SQL

Иногда нужно физически объединить (скопировать) данные из нескольких таблиц. Это можно сделать так:

 
INSERT INTO `tbl_items_all` SELECT * FROM `tbl_items1`;

Но есть проблема - если таблиц несколько, то уникальные поля, обычно это ID, начнут конфликтовать.


Категории: SQL

Иногда нужно объяснить результат запроса в одну строку, по аналогии с функцией implode (объединяющей элементы массива в строку с заданным разделителем)

 
SELECT GROUP_CONCAT(`internal_id` SEPARATOR ',')  
FROM  `tbl_items` 
WHERE  `id_provider` = 2 AND `internal_id`  > 0


Категории: SQL

Подобное может потребоватся, если нужно найти категории в блоге с сытым большим количеством статей.

 
SELECT * FROM blog_category AS a WHERE
(
    SELECT count(*) FROM blog_rel_categories2item AS b WHERE b.id_cat = a.id
) > 100 


Категории: SQL

mySql поддерживает регулярные выражения и в этой заметке приведу несколько примеров.


Категории: SQL

Пригодиться, например, если в таблице есть текстовое поле, значения все значения которого начинаются с / .
Именно слешь и нужно удалить.


Категории: SQL
Пометки: Замена текста в поле, sql работа со строками

Как не странно, но многие недооценивают возможности SQL. Решил оставить небольшой пример использования условий в SQL запросах.


Категории: SQL
Пометки: If, выбор, условия, условие

Хотя синтаксис MS Sql и MySql довольно похожи, но есть ряд отличий не позволяющих прост копировать sql запрос из одной СУБД в другую.


Категории: SQL
Пометки: переконвертировать запрос из MsSql в MySql

Сразу уточню нормальное решение - заменит ISNULL на ifnull , а статья просто демонстрация создания и использования хранимых процедур в MySql.

Итак, столкнулся с тем, что ISNULL для MS sql, в отличии от версии MySql получает на вход 2 значения. (Первое - что проверяем, второе - возвращаемое значение, если первый аргумент NULL)


Категории: SQL
Яндекс.Метрика