for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
   :: Помощь сайту :: 

MySql. Последовательность считывания строк на Select Sql
Ydin
Автор

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

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

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



Исправлено: Ydin, 22.12.17 18:21
Ratings: 0 negative/0 positive

Re: MySql. Последовательность считывания строк на Select Sql
Igor Korolyov

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

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


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




Исправлено: Igor Korolyov, 22.12.17 19:06
Ratings: 0 negative/1 positive

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

Сообщений: 5756
Откуда: Киев
Дата: 22.12.17 19:24:30ОтветитьЦитировать
ИК, спасибо! Такой быстрый ответ!
Это всунул код, кот. работал для DBF, и он заработал. А потом здох.
Ответ - полный! Тема закрыта!
Ratings: 0 negative/0 positive

Re: MySql. Последовательность считывания строк на Select Sql
sphinx
[Модератор]

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


------------------
"Вы поступили правильно, мой друг, но, боюсь, совершили ошибку"..."(с)
Ratings: 0 negative/1 positive

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

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



Исправлено: Ydin, 22.12.17 20:43
Ratings: 0 negative/0 positive

Re: MySql. Последовательность считывания строк на Select Sql
spinz

Сообщений: 3379
Дата: 22.12.17 20:45:29ОтветитьЦитировать
Ydin
Если тролль долбит ИК или мою Украину, я психую. Типа, выхожу из себя.

Так это же самая вкуснятина для троллей
Ratings: 0 negative/0 positive

Re: MySql. Последовательность считывания строк на Select Sql
Foxtrot

Сообщений: 3224
Откуда: Бишкек
Дата: 22.12.17 20:45:35ОтветитьЦитировать
26 привычнее


------------------
P.S. будете проходить мимо, не стесняйтесь, проходите
Ratings: 0 negative/2 positive

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

Сообщений: 5756
Откуда: Киев
Дата: 22.12.17 21:33:54ОтветитьЦитировать
Сейчас 26, да, вернулось... Помните, 26 комиссаров?
Ratings: 0 negative/0 positive

Re: MySql. Последовательность считывания строк на Select Sql
Igor Korolyov

Сообщений: 30362
Дата: 22.12.17 21:46:06ОтветитьЦитировать
Foxtrot
26 привычнее
Под..колка засчитана!


------------------
WBR, Igor
Ratings: 0 negative/0 positive

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

Сообщений: 5756
Откуда: Киев
Дата: 22.12.17 22:51:21ОтветитьЦитировать
Igor Korolyov
Под..колка засчитана!
Да, и аккуратно так
Ratings: 0 negative/0 positive



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

On-line: 30 and Guests: 30


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