Архив для рубрики MySQL

0

Получение повторяющихся строк в MySQL

Редко когда стоит задача найти повторяющиеся записи в MySQL по какому-то значению. И почти всегда эта задача стоит “на вчера”. Есть несколько путей её решения. Тут записан наиболее приемлемый для меня вариант её решения.

SELECT t1.id, t1.a, t1.b
FROM t1
INNER JOIN (
	SELECT id, a, b 
	FROM t1 
	GROUP BY a, b 
	HAVING COUNT(id) > 1
) AS t2 ON t1.a = t2.a AND t1.b = t2.b

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

4

Solr, установка и настройка работы с MySQL

Solr, как и Sphinx это поисковый движок, он имеет большой функционал, но и уровень вхождения в его работу более высокий чем у Sphinx. Мы будем устанавливать Solr из коробки. Дистрибутив можно взять на официальном сайте, сейчас последняя версия Solr 3.4.0. Но наиболее благоприятный для работы с MySQL является дистрибутив 1.4 и то из nighty builds. Именно ему можно отдавать данные напрямую из MySQL.
Далее

0

Сортировка в MySQL

Бывают маленькие хитрости, о которых почти никто не сможет рассказать, вот например как сортировка в MySQL. Например, три типа значения one, two и three. И допустим надо выводить сначала все записи с типом two, потом с one и только потом с three, или наоборот, three потом one и потом two. Так вот, эта задача очень просто решается с применением типа поля ENUM. ENUM позволяет сортировать значения при выборке с указанием какой именно должна быть очерёдность, и если не указана, то по умолчанию в порядке перечисления полей в определении этого ENUM.

Пример запроса:

SELECT id FROM records WHERE id>0 ORDER BY FIELD(record_type,"two","one","three")

0

Связка PHP+MySQL+Memcache+MacOSX-XServe-PPC

Вобщем понадобилось поставить данную штуку. И возникли небольшие проблемы. Которые решаются довольно просто.
Далее

0

String replace в MySQL

Очень понадобилась эта функция, а код на PHP или RoR было писать очень лень. Минут 5 пыток гугла и вот, что он мне сказал:

UPDATE tbl_name SET fld_name = REPLACE(fld_name, 'find this', 'replace it');

Записал себе как памятку.

0

Swap в MySQL

Как поменять два значения местами в mysql одним запросом?

Оказывается очень легко, но для этого надо воспользоваться временной переменной @tmp:

UPDATE table SET a=@tmp:=a, a=b, b=@tmp;

0

Визуально об MySQL JOINs

А то время от времени забываю :)
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html