Архив для рубрики MySQL
January 16, 2012
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
Правда и его стоит использовать очень осторожно на больших таблицах, если нет правильных ключей для выборки.
March 29, 2011
MySQL Shell Solr Xserve Памятка
Solr, как и Sphinx это поисковый движок, он имеет большой функционал, но и уровень вхождения в его работу более высокий чем у Sphinx. Мы будем устанавливать Solr из коробки. Дистрибутив можно взять на официальном сайте, сейчас последняя версия Solr 3.4.0. Но наиболее благоприятный для работы с MySQL является дистрибутив 1.4 и то из nighty builds. Именно ему можно отдавать данные напрямую из MySQL.
Далее
February 23, 2011
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")
November 16, 2010
memcache MySQL PHP Xserve Памятка
Вобщем понадобилось поставить данную штуку. И возникли небольшие проблемы. Которые решаются довольно просто.
Далее
April 17, 2010
MySQL Памятка
Очень понадобилась эта функция, а код на PHP или RoR было писать очень лень. Минут 5 пыток гугла и вот, что он мне сказал:
UPDATE tbl_name SET fld_name = REPLACE(fld_name, 'find this', 'replace it');
Записал себе как памятку.
July 31, 2009
MySQL Памятка
Как поменять два значения местами в mysql одним запросом?
Оказывается очень легко, но для этого надо воспользоваться временной переменной @tmp:
UPDATE table SET a=@tmp:=a, a=b, b=@tmp;