- Mysql desc не работает
- Google интегрировал AppSheet в Gmail
- Новости интернет-рекламы за сентябрь 2021 года
- Не работает сортировка ORDER BY
- Почему ORDER BY не срабатывает при использовании UNION в mysql?
- 5 ответов 5
- Оптимизация ORDER BY — о чем многие забывают
- Оптимизация ORDER BY в запросах с джоинами.
- Команда ORDER BY
- Основные запросы
- Условия выборки
- Группировка
- Сложение строк
- Несколько таблиц
- Длина строк
- Изменение строк
- Поиск по строкам
- Работа с пробелами
- Работа с регистром
- Информация
- Условия
- Полезное
- Разное
- Математические функции
- Списки
- Извлечение части даты
- Получение даты и времени
- Преобразование даты
- Сложение дат
- Тригонометрия
- Отдельные символы
- Системы счисления
- Синтаксис
- Примеры
- Пример
- Пример
- Пример
- Пример
Mysql desc не работает
- Поисковые системы
- Яндекс
- Каталоги сайтов
- Прочие поисковики
- Агрегаторы и доски объявлений
- Практика оптимизации
- Общие вопросы оптимизации
- Частные вопросы — ранжирование, индексация, бан
- Сервисы и программы для работы с SE
- Любые вопросы от новичков по оптимизации
- Ссылочные и пользовательские факторы
- Поисковые технологии
- Doorways & Cloaking
- Трафик для сайтов
- Поисковая и контекстная реклама
- Google Adwords
- Яндекс.Директ
- Тизерная и баннерная реклама
- Общие вопросы рекламы
- Монетизация сайтов
- Партнерские программы в Интернете
- Контекстная реклама
- Google AdSense
- Рекламная Сеть Яндекса
- Размещение тизерной и баннерной рекламы
- Общие вопросы
- Сайтостроение
- Веб-строительство
- Статистика и аналитика
- Доменные имена
- Администрирование серверов
- Хостинг
- Безопасность
- Usability и удержание посетителей
- Копирайтинг
- Социальный Маркетинг
- Вконтакте
- YouTube
- Facebook & Instagram
- TikTok
- Telegram
- Общие вопросы
- Общение профессионалов
- Семинары и конференции
- eCommerce, интернет-магазины и электронная коммерция
- Телефония и коммуникации для бизнеса
- Деловые вопросы
- Финансы
- Cчет в Яндекс.Деньгах
- Криптовалюты
- Инвестиции
- Экономика
- Правовые вопросы
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты — покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки — обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
- О сайте и форуме
- Самое разное
- Курилка
- Встречи и сходки
- Железо и софт
Google интегрировал AppSheet в Gmail
Новости интернет-рекламы за сентябрь 2021 года
Выполняю запрос в phpmyadmin:
SELECT * FROM firms where active=’1′ and country=’2307′ and region=’2363′ order by id desc
#1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘desc LIMIT 0, 30’ at line 1
Если выполняю запрос без группировки:
SELECT * FROM firms where active=’1′ and country=’2307′ and region=’2363′
то все ок. Подскажите почему не хочет order by выполнять? Поле id есть в таблице
Источник
Не работает сортировка ORDER BY
Не сортирует конструкция order by языка MYSQL.
Вот какой запрос пишу:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Не работает сортировка по ORDER BY
Всем доброго времени, суток, мне нужно сделать, чтобы данные из таблицы БД выводились в обратном.
Сортировка поля Order by + DESC не работает
Добрый день , создал форму, добавил все что надо, вот собственно код . void __fastcall.
двойная сортировка в ORDER BY
Есть SQL-запрос к базе на выборку по двум полям, в первом выбирается несколько конкретных записей и.
kilogram, Обратите внимание. Числа — синие и выровнены направо. Строки — зеленые и выровнены налево.
Строки сортируются по алфавиту. «1» 1
А как тогда сортировать таблицу вот такого типа:
id | model | sku |
1484 | Бур (SDS-Plus) 25 х 260 мм MAKITA | 1434 |
1485 | Бур (SDS-Plus) 25 х 310 мм MAKITA | 1435 |
1486 | Бур (SDS-Plus) 25 х 350 мм TAMO | 1436 |
1488 | Бур (SDS-Plus) 25 х 450 мм ТАМО | 1438 |
1487 | Бур (SDS-Plus) 25 х 450 мм MAKITA | 1437 |
1489 | Бур (SDS-Plus) 26 х 260 мм MAKITA | 1439 |
1490 | Бур (SDS-Plus) 26 х 310 мм MAKITA | 1440 |
1491 | Бур (SDS-Plus) 26 х 450 мм MAKITA | 1441 |
1407 | Бур (SDS-Plus) 4 х 110 мм TAMO | 1357 |
1408 | Бур (SDS-Plus) 4 х 110 мм MAKITA | 1358 |
1409 | Бур (SDS-Plus) 4 х 160 мм TAMO | 1359 |
1410 | Бур (SDS-Plus) 5 х 110 мм TAMO | 1360 |
1411 | Бур (SDS-Plus) 5 х 110 мм MAKITA | 1361 |
1413 | Бур (SDS-Plus) 5 х 160 мм MAKITA | 1363 |
1412 | Бур (SDS-Plus) 5 х 160 мм TAMO | 1362 |
1414 | Бур (SDS-Plus) 6 х 110 мм TAMO | 1364 |
1415 | Бур (SDS-Plus) 6 х 110 мм MAKITA | 1365 |
1417 | Бур (SDS-Plus) 6 х 160 мм MAKITA | 1367 |
1416 | Бур (SDS-Plus) 6 х 160 мм TAMO | 1366 |
1419 | Бур (SDS-Plus) 6 х 210 мм MAKITA | 1369 |
1418 | Бур (SDS-Plus) 6 х 210 мм TAMO | 1368 |
1420 | Бур (SDS-Plus) 6 х 260 мм TAMO | 1370 |
1422 | Бур (SDS-Plus) 8 х 110 мм MAKITA | 1372 |
1421 | Бур (SDS-Plus) 8 х 110 мм TAMO |
Добавлено через 9 минут
Не успел отредактировать.
Сортировка по полю `model`
Я в phpMyadmin выполняю запрос:
Возможно мое сообщение было не информативно, см. вложение.
Необходимо сортировать по модели с «человеческой логикой», т.е.:
1407 | Бур (SDS-Plus) 4 х 110 мм TAMO | 1357 |
1408 | Бур (SDS-Plus) 4 х 110 мм MAKITA | 1358 |
1409 | Бур (SDS-Plus) 4 х 160 мм TAMO | 1359 |
1410 | Бур (SDS-Plus) 5 х 110 мм TAMO | 1360 |
1411 | Бур (SDS-Plus) 5 х 110 мм MAKITA | 1361 |
1413 | Бур (SDS-Plus) 5 х 160 мм MAKITA | 1363 |
1412 | Бур (SDS-Plus) 5 х 160 мм TAMO | 1362 |
1414 | Бур (SDS-Plus) 6 х 110 мм TAMO | 1364 |
1415 | Бур (SDS-Plus) 6 х 110 мм MAKITA | 1365 |
1417 | Бур (SDS-Plus) 6 х 160 мм MAKITA | 1367 |
1416 | Бур (SDS-Plus) 6 х 160 мм TAMO | 1366 |
1419 | Бур (SDS-Plus) 6 х 210 мм MAKITA | 1369 |
1418 | Бур (SDS-Plus) 6 х 210 мм TAMO | 1368 |
1420 | Бур (SDS-Plus) 6 х 260 мм TAMO | 1370 |
1422 | Бур (SDS-Plus) 8 х 110 мм MAKITA | 1372 |
1421 | Бур (SDS-Plus) 8 х 110 мм TAMO | |
1484 | Бур (SDS-Plus) 25 х 260 мм MAKITA | 1434 |
1485 | Бур (SDS-Plus) 25 х 310 мм MAKITA | 1435 |
1486 | Бур (SDS-Plus) 25 х 350 мм TAMO | 1436 |
1488 | Бур (SDS-Plus) 25 х 450 мм ТАМО | 1438 |
1487 | Бур (SDS-Plus) 25 х 450 мм MAKITA | 1437 |
1489 | Бур (SDS-Plus) 26 х 260 мм MAKITA | 1439 |
1490 | Бур (SDS-Plus) 26 х 310 мм MAKITA | 1440 |
1491 | Бур (SDS-Plus) 26 х 450 мм MAKITA | 1441 |
Картинка в плохом качестве.
В спойлере полный вывод того, как отработал запрос в моем первом посте.
Сортировка то все равно не правильная.
Думал проблема в пробелах, удалил лишние пробелы.
Источник
Почему ORDER BY не срабатывает при использовании UNION в mysql?
Вопрос по mysql. Какие есть тонкости использования UNION в mysql?
Столкнулся с такой штукой — у меня есть два селекта, первый из них содержит ORDER BY . между селектами UNION стоит. сортировки в первом селекте почему-то НЕ происходит. То есть, выводит без сортировки, и ошибку не выдает никакую.
Создал базу данных
Создал таблицу ukraine
Создал таблицу russia
Объединяю с помощью UNION c ORDER BY, не срабатывает
Объединяю с помощью UNION c ORDER BY, не срабатывает
Объединяю с помощью UNION c ORDER BY, который ставлю в КОНЕЦ, сработало
Вопрос — почему ORDER BY срабатывает только в конце? Он, по идее, он должен срабатывать внутри каждого запроса.
5 ответов 5
Представьте, что каждый подзапрос вставляет данные в некоторую временную таблицу, а потом общий селект эти данные вытягивает. Тогда очевидно, что нет разницы в каком порядке были вставлены. Учитывается только итоговый порядок выборки
Трансформируется в некоторое подобие такого
Тогда понятно, что какие бы ORDER BY Вы не указывали в промежуточных запросах последний селект будет использовать свой порядок сортировки
Вы делаете именно union , не более простой и глупый union all . union без указания какой именно это union выполняет union distinct . Т.е. попытается удалить дубликаты строк из объединяемых множеств.
Обычно это само по себе не то поведение, на что вы рассчитывали и почти всегда когда говорят про union хотят видеть на самом деле union all . Если все строки разные, это просто лишняя операция, если есть совпадающие строки — то их вы потеряете из выборки и это может быть совсем не тем, что вы хотели получить.
И да, поиск дублирующих строк изменяет сортировку набора строк потому что он так сделан.
Фактически union all просто склеит две выборки одну за другой и не затронет сортировку. Не помню исключений для запроса верхнего уровня, но да, это не гарантируется стандартом. Если порядок критично важен то имеет смысл пересортировать после объединения:
Этот запрос гарантированно выдаст сначала записи из таблицы ukraine, отсортированные по названию, затем — из russia, тоже отсортированные по названию.
Источник
Оптимизация ORDER BY — о чем многие забывают
На тему оптимизации MySQL запросов написано очень много, все знают как оптимизировать SELECT, INSERT, что нужно джоинить по ключу и т.д. и т.п.
Но есть один момент, тоже неоднократно описанный во всех мануалах, но почему-то про него все забывают.
Оптимизация ORDER BY в запросах с джоинами.
Оправдание: поиском воспользовался, не нашел !
Большинство считают, что если ORDER BY происходит по индексу, то и проблем никаких нет, однако это не всегда так. Недавно я разбирался с одним запросом который дико тормозил базу хотя вроде все индексы на нужных местах. ORDER BY оказался последним местом, куда я ткнулся, и проблема оказалась именно там.
Маленькая выдержка из мануалов по оптимизации:
===
Как MySQL оптимизирует ORDER BY
Ниже приведены некоторые случаи, когда MySQLне может использовать индексы, чтобы выполнить ORDER BY
…
Связываются несколько таблиц, и столбцы, по которым делается
сортировка ORDER BY, относятся не только к первой неконстантной
(const) таблице, используемой для выборки строк(это первая таблица
в выводе EXPLAIN, в которой не используется константный, const, метод выборки строк).
…
===
Для ORDER BY важно, чтобы таблица, по которой будет производиться сортировка была на первом месте. Однако по умолчанаю, в каком бы порядке вы не джойнили таблицы, встроенный в mysql оптимизатор переставит их в том порядке, как он сам посчитает нужным. То есть если вы поставили нужную таблицу первой в запросе, то это вовсе не означает, что она будет на самом деле первой.
К счастью, оптимизатору mysql можно сказать, чтобы он джоинил таблицы в том порядке, какой мы ему указали, для этого нужно в SELECT добавить команду STRAIGHT_JOIN:
SELECT STRAIGHT_JOIN… FROM table JOIN…… ORDER BY table.row
Проверка на mysql базе форума PHPBB3 содержащей около 300 000 постов:
Query took 12.2571 sec
в explain видим ужасное: Using where; Using temporary; Using filesort
Меняем порядок таблиц (кеш мускуля сбросил перезагрузкой):
Query took 0.0447 sec
в explain: Using where;
Вот такой принудительной перестановкой таблиц мы ускорили выполнение запроса в 300 раз!
Это совсем не значит, что нужно всегда использовать STRAIGHT_JOIN и самому следить за порядком таблиц. Но в некоторых случах это необходимо.
Источник
Команда ORDER BY
Основные запросы
Условия выборки
Группировка
Сложение строк
Несколько таблиц
Длина строк
Изменение строк
Поиск по строкам
Работа с пробелами
Работа с регистром
Информация
Условия
Полезное
Разное
- Типы полей
- Организация базы данных
создание правильной структуры —> - Подзапросы
- SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price; https://habrahabr.ru/post/133781/ тут еще про переменные цикл получается SET @i = 0; SELECT * FROM product WHERE MOD(@i:=@i+1, 2) = 0; —>Переменные sql
Математические функции
Списки
Извлечение части даты
Получение даты и времени
Преобразование даты
Сложение дат
Тригонометрия
Отдельные символы
Системы счисления
Команда ORDER BY позволяет сортировать записи по определенному полю при выборе из базы данных.
См. также команду LIMIT, которая ограничивает количество выбираемых записей.
Синтаксис
Сортировка по одному полю:
Можно сортировать не по одному, а по многим полям сразу:
По умолчанию записи сортируются по возрастанию, чтобы отсортировать по убыванию — поставьте DESC:
По умолчанию будет сортировка, будто поставлено ASC:
Условие WHERE не обязательно — если его не поставить, будут выбраны все записи:
Примеры
Все примеры будут по этой таблице workers, если не сказано иное:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
1 | Дима | 23 | 400 |
2 | Петя | 25 | 500 |
3 | Вася | 23 | 500 |
4 | Коля | 30 | 1000 |
5 | Иван | 27 | 500 |
6 | Кирилл | 28 | 1000 |
Пример
Давайте получим все записи из таблицы и отсортируем их по возрастанию возраста:
SQL запрос выберет строки в следующем порядке:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
1 | Дима | 23 | 400 |
3 | Вася | 23 | 500 |
2 | Петя | 25 | 500 |
5 | Иван | 27 | 500 |
6 | Кирилл | 28 | 1000 |
4 | Коля | 30 | 1000 |
Так как выбираются все записи, то блок WHERE можно не указывать:
Можно также указать тип сортировки в явном виде — ASC — результат от этого не изменится:
Пример
Давайте теперь отсортируем записи по убыванию возраста:
SQL запрос выберет строки в следующем порядке:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
4 | Коля | 30 | 1000 |
6 | Кирилл | 28 | 1000 |
5 | Иван | 27 | 500 |
2 | Петя | 25 | 500 |
1 | Дима | 23 | 400 |
3 | Вася | 23 | 500 |
Пример
Давайте теперь отсортируем записи одновременно по возрастанию возраста и по убыванию зарплаты.
При этом записи сначала будут сортироваться по возрасту, а те записи, в которых возраст одинаковый (в нашем случае — 23), будут располагаться по убыванию зарплаты:
SQL запрос выберет строки в следующем порядке:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
3 | Вася | 23 | 500 |
1 | Дима | 23 | 400 |
2 | Петя | 25 | 500 |
5 | Иван | 27 | 500 |
6 | Кирилл | 28 | 1000 |
4 | Коля | 30 | 1000 |
Пример
Давайте при тех же условиях (т.е. сначала сортировка по возрасту) отсортируем по возрастанию зарплаты.
Теперь первая и вторая запись поменяются местами так, чтобы сначала шла меньшая зарплата, а потом — большая:
SQL запрос выберет строки в следующем порядке:
Источник