Все заметки с тэгом «SQL»

Можно уточнить:
    1. Среда, 10 марта

      MySQL, удаление дубликатов

      Существует множество универсальных решений данной задачи, но в MySQL всё решается ещё проще:


      ALTER IGNORE TABLE my_table ADD UNIQUE INDEX(a, b);


    1. Пятница, 7 августа 2009

      PostgreSQL, получить ID только что вставленной записи

      Довольно часто требуется получить ID только что вставленной в базу записи. В MySQL это чаще всего решается при помощи LAST_INSERT_ID.

      В PostgreSQL можно сделать так:

      INSERT
      INTO "Post"(
      title,
      text
      )
      VALUES (
      'Я заголовок',
      'Я текст'
      )
      RETURNING id


    1. Среда, 11 марта 2009

      Множественный UPDATE в MySQL

      Сразу предупреждаю, что эффективней использовать несколько «классических» запросов и, по возможности, транзакции (которые MyISAM не поддерживает). Так что… для общего развития:

      Способ №1



      UPDATE tbl_country SET price = CASE
      WHEN code = 1 THEN 123;
      WHEN code = 2 THEN 456;

      END
      WHERE code IN (1,2,…)



      Способ №2



      INSERT INTO tbl_country
      (code, price)
      VALUES
      (1, 123),
      (2, 456),

      ON DUPLICATE KEY UPDATE tbl_country.price = VALUES(price);


    1. Четверг, 5 марта 2009

      MySQL: выбрать новости с определёнными id соблюдая порядок

      Задача: выбрать новости с id = [2, 10, 3, 88, 23] соблюдая порядок.


      SELECT *
      FROM news
      WHERE id IN (2, 10, 3, 88, 23)
      ORDER BY FIELD (id, 2, 10, 3, 88, 23)


    1. Среда, 18 февраля 2009

      toggle для mysql

      Что только не придумают иногда программисты… Задача — изменить значение cron в таблице ml на противоположное. Код немного не SQL т.к., скорее всего, писался под Drupal:


      UPDATE {ml} SET cron = (SELECT if(cron = 0,"1","0")) WHERE yid = %d



      Хотя на самом деле можно проще, быстрее и понятней:


      UPDATE {ml} SET cron = !cron WHERE yid = %d


    1. Вторник, 10 февраля 2009

      MySQL, сложение и NULL

      Вчера столкнулся с интересной штукой при работе с MySQL:

      SELECT NULL + 13


      даст нам NULL.

      Чтобы получилось ожидаемое (по крайней мере я почему-то ожидал) 13:


      SELECT IFNULL(NULL, 0) + 13



      IFNULL возвращает то, что передано вторым параметром, если первый равен NULL.

      Вместо NULL, как вы наверное догадались, было поле типа INT.


    1. Воскресенье, 21 декабря 2008

      Иерархические структуры данных

      Две очень толковых статьи Михаила Стадника о хранении иерархических структур в базе данных.

      Настоятельно рекомендую к прочтению.

      Иерархические структуры данных и Doctrine
      Иерархические структуры данных и производительность


    1. Пятница, 19 декабря 2008

      MySQL: добавить если ещё нет

      Иногда требуется вставить запись в таблицу, если её там до сих пор нет. Можно сделать пару запросов: одним —проверить, другим — вставить, а можно и одним:

      INSERT IGNORE INTO `users`
      SET `login` = 'samdark', `password` = 'mypassword';



      Поле `login` должно быть уникальным.


    1. Вторник, 2 декабря 2008

      WWW SQL Designer

      WWW SQL Designer позволяет визуально разрабатывать схему БД (E-R диаграмму) прямо в браузере. Отлично работает в Firefox, IE6/7/8, Safari и Opera.

      Поддерживает ключи, комментарии, индексы. Можно сохранять схему, печатать её, экспортировать в SQL. Также её можно импортировать из базы.

      Всё это дело даже можно поставить себе. Распространяется по GNU GPL.

      Демо
      Описание и загрузка
      Бонус: форматтер SQL


    1. Пятница, 28 ноября 2008

      MySQL 5.1

      Зарелизилась новая версия MySQL за номером 5.1. Уже чувcтвуется положительное влияние Sun.

      Из вкусного:
      — Физическое разбиение таблиц на несколько файлов (подробнее).
      — Построчная репликация.
      — API для плагинов полнотекстового поиска.
      — Встроенный планировщик.
      — Системные таблички для логов.
      — mysql_upgrade (коррекция баз прошлых версий MySQL).
      — Кластер в комплекте.
      — Больше информации в метаданных.
      — XML, XPath.
      — Эмулятор нагрузок.

      What's New in MySQL 5.1
      Пробуем


  1. 1
  2. 2
  3. Последняя

Подписаться на RSS

Интересное

Разделы

  1. (5)
  2. (11)
  3. (6)
  4. (9)
  5. (6)
  6. (6)
  7. (16)
  8. (59)
  9. (264)
  10. (51)
  11. (16)
  12. (12)
  13. (37)
  14. (5)
  15. (10)
  16. (14)
  17. (18)
  18. (12)
  19. (6)
  20. (8)
  21. (7)
  22. (29)
  23. (62)
  24. (18)
  25. (64)
  26. (5)
  27. (193)
  28. (56)
  29. (6)
  30. (18)
  31. (72)
  32. (27)
  33. (65)
  34. (32)
  35. (10)
  36. (5)
  37. (6)
  38. (5)
  39. (309)
  40. (11)
  41. (6)
  42. (12)
  43. (8)
  44. (18)
  45. (6)
  46. (15)
  47. (114)
  48. (18)
  49. (6)
  50. (8)
  51. (66)
  52. (16)
  53. (6)
  54. (17)
  55. (5)
  56. (26)
  57. (7)
  58. (27)
  59. (7)
  60. (12)
  61. (11)
  62. (118)
  63. (31)
  64. (5)
  65. (18)
  66. (22)
  67. (9)
  68. (6)
  69. (8)
  70. (41)
  71. (10)
  72. (6)
  73. (12)
  74. (8)
  75. (5)

Друзья