Mysql desc не работает

Mysql desc не работает

  • Поисковые системы
    • Google
    • Яндекс
    • Каталоги сайтов
    • Прочие поисковики
    • Агрегаторы и доски объявлений
  • Практика оптимизации
    • Общие вопросы оптимизации
    • Частные вопросы — ранжирование, индексация, бан
    • Сервисы и программы для работы с SE
    • Любые вопросы от новичков по оптимизации
    • Ссылочные и пользовательские факторы
    • Поисковые технологии
    • Doorways & Cloaking
  • Трафик для сайтов
    • Поисковая и контекстная реклама
    • Google Adwords
    • Яндекс.Директ
    • Тизерная и баннерная реклама
    • Общие вопросы рекламы
  • Монетизация сайтов
    • Партнерские программы в Интернете
    • Контекстная реклама
    • Google AdSense
    • Рекламная Сеть Яндекса
    • Размещение тизерной и баннерной рекламы
    • Общие вопросы
  • Сайтостроение
    • Веб-строительство
    • Статистика и аналитика
    • Доменные имена
    • Администрирование серверов
    • Хостинг
    • Безопасность
    • Usability и удержание посетителей
    • Копирайтинг
  • Социальный Маркетинг
    • Вконтакте
    • YouTube
    • Facebook & Instagram
    • TikTok
    • Telegram
    • Общие вопросы
  • Общение профессионалов
    • Семинары и конференции
    • eCommerce, интернет-магазины и электронная коммерция
    • Телефония и коммуникации для бизнеса
    • Деловые вопросы
    • Финансы
    • Cчет в Яндекс.Деньгах
    • Криптовалюты
    • Инвестиции
    • Экономика
    • Правовые вопросы
  • Биржа и продажа
    • Финансовые объявления
    • Работа на постоянной основе
    • Сайты — покупка, продажа
    • Соцсети: страницы, группы, приложения
    • Сайты без доменов
    • Трафик, тизерная и баннерная реклама
    • Продажа, оценка, регистрация доменов
    • Ссылки — обмен, покупка, продажа
    • Программы и скрипты
    • Размещение статей
    • Инфопродукты
    • Прочие цифровые товары
  • Работа и услуги для вебмастера
    • Оптимизация, продвижение и аудит
    • Ведение рекламных кампаний
    • Услуги в области SMM
    • Программирование
    • Администрирование серверов и сайтов
    • Прокси, ВПН, анонимайзеры, IP
    • Платное обучение, вебинары
    • Регистрация в каталогах
    • Копирайтинг, переводы
    • Дизайн
    • Usability: консультации и аудит
    • Изготовление сайтов
    • Наполнение сайтов
    • Прочие услуги
  • Не про работу
    • О сайте и форуме
    • Самое разное
    • Курилка
    • Встречи и сходки
    • Железо и софт
Читайте также:  Как настроить часы электронные настольные компании telefunken

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 запрос выберет строки в следующем порядке:

Источник

Оцените статью