Для получения полного доступа
зарегистрируйтесь.

Раздел:
Подраздел:
Языки:


samdark
  • Репутация: 349
  • Сниппеты: 57
  • Ревизии: 5

Запрос позволяет эффективно выбрать 10 последних комментариев, максимум по одному на пост.

SELECT *
FROM comment c1
LEFT JOIN comment c2 ON c1.id < c2.id AND c1.post_id = c2.post_id
WHERE c2.id IS NULL
ORDER BY c1.id DESC
LIMIT 10
samdark
  • Репутация: 349
  • Сниппеты: 57
  • Ревизии: 5

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

SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA='my_db_name'
AND TABLE_TYPE='BASE TABLE'
AND ENGINE IN ('MARIA','MyISAM')
Gravatar image
Nepster
  • Репутация: 151
  • Сниппеты: 19
  • Ревизии: 0

SQL запрос осуществляет сортировку по возрастанию и при этом нули будут в конце.

SELECT * FROM `table` ORDER BY CASE WHEN `field_name`=0 THEN 1 ELSE 0 END, `field_name`;
Gravatar image
isxaker
  • Репутация: 8
  • Сниппеты: 4
  • Ревизии: 0

If you need to return just created row fully

INSERT INTO MyTable(ID, Price, Count)
OUTPUT INSERTED.*
VALUES ('777', '1000', '10')
samdark
  • Репутация: 349
  • Сниппеты: 57
  • Ревизии: 5

Задача: выбрать новости с 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)