:: Visual Foxpro, Foxpro for DOS
MySql. Последовательность считывания строк на Select Sql
Ydin
Автор

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Проблема: сделать так, чтобы мог читать таблицу в Mysql в естественном порядке (как в dbf - recno())
Придумали мне задачу - пользовательским способом посортировать справочник предприятий. Без доп. полей.
Не понятно? Плюньте, дальше, типа, "чукча покажи пальцем, а не норд-ост":
DBF: Select * from ...
Последовательность строк как в этом Dbf
MySql: в общем случае - не такая

У меня Recno - целое, инкримент. Name - текстовое.
Читаю в курсор через Select Sql
- если поле одно - Recno, то последовательность строк упорядочена по этому Recno и это естественно, соответствуtт расположению по возрастанию в таблице. По определению
- если 2 поля Recno,Name - совсем другая последовательность. И даже не такая как для первого поля Name

Вопрос: Как она определяется эта последовательность.
Можно просто ткнуть где прочитать



Исправлено 2 раз(а). Последнее : Ydin, 22.12.17 19:21
Ratings: 0 negative/0 positive
Re: MySql. Последовательность считывания строк на Select Sql
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Никакого "физического порядка записей" нет ни в одном нормальном SQL сервере. Ни один SQL сервер не добавляет записи "по порядку" - "физически" самая последняя вставленная запись запросто может оказаться первой во внутренних структурах хранения, и потому выдаваться тоже первой (или 45-й, это уж как решит сам сервер в процессе выполнения запроса).
Ни один SQL сервер (mysql в том числе) не гарантирует какой либо "определённый" порядок выдачи записей в результате SELECT запроса КРОМЕ как при наличии в нём ORDER BY - естественно оперирующий некоторым полем, или полями таблиц.
Работая с SQL (даже в фоксе, с его родными dbf) следует просто забыть про всякие RECNO() и оперировать исключительно полями явно определёнными в структуре таблиц.

Цитата:
если поле одно - Recno, то последовательность строк упорядочена по этому Recno и это естественно, соответствуtт расположению по возрастанию в таблице. По определению
Это глубочайшее заблуждение. даже в таблице из одного единственного autoincrement поля сервер запросто может выдавать записи в том порядке каком посчитает нужным. И не по возрастанию, и не по убыванию. ТОЛЬКО наличие ORDER BY позволяет получить хотя бы частично предсказуемый результат (частично - это в том плане что если комбинация полей в ORDER BY не уникальна для каких то записей, то порядок их следования в своей "группе" будет не определён).


------------------
WBR, Igor




Исправлено 1 раз(а). Последнее : Igor Korolyov, 22.12.17 20:06
Ratings: 0 negative/1 positive
Re: MySql. Последовательность считывания строк на Select Sql
Ydin
Автор

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
ИК, спасибо! Такой быстрый ответ!
Это всунул код, кот. работал для DBF, и он заработал. А потом здох.
Ответ - полный! Тема закрыта!
Ratings: 0 negative/0 positive
Re: MySql. Последовательность считывания строк на Select Sql
sphinx

Сообщений: 31184
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
А если у ДРУГИХ участников есть вопросы? Создавать тему с цифрой 2?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/1 positive
Re: MySql. Последовательность считывания строк на Select Sql
Ydin
Автор

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Сань, будь проще! Я просто не хочу, чтобы тролли тут ходили. А для них Off - хлеб насущный.
Мы, что уже с тобой не друзья? С моей стороны - нормально.
Если тролль долбит ИК или мою Украину, я психую. Типа, выхожу из себя.
Так это моя фишка. А что у меня еще осталось? Ну да, еще FoxClub.



Исправлено 1 раз(а). Последнее : Ydin, 22.12.17 21:43
Ratings: 0 negative/0 positive
Re: MySql. Последовательность считывания строк на Select Sql
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Ydin
Если тролль долбит ИК или мою Украину, я психую. Типа, выхожу из себя.

Так это же самая вкуснятина для троллей
Ratings: 0 negative/0 positive
Re: MySql. Последовательность считывания строк на Select Sql
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
26 привычнее


------------------
Мойте ноги, моя ноги вы моете и руки
Ratings: 0 negative/2 positive
Re: MySql. Последовательность считывания строк на Select Sql
Ydin
Автор

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Сейчас 26, да, вернулось... Помните, 26 комиссаров?
Ratings: 0 negative/0 positive
Re: MySql. Последовательность считывания строк на Select Sql
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Foxtrot
26 привычнее
Под..колка засчитана!


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: MySql. Последовательность считывания строк на Select Sql
Ydin
Автор

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Igor Korolyov
Под..колка засчитана!
Да, и аккуратно так
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 63 (Гостей: 63)

© 2000-2024 Fox Club 
Яндекс.Метрика