Мусол - установить индекс по убыванию
Приветствую всех! Устанавливаем индекс на столбец в мусол. При чтении столбца имеем: 1,2,3
То есть по возрастанию. Как установить индекс чтобы было по убыванию и так что бы это не влияло на производительность. Сейчас я индекс устанавливаю через phpMyAdmin вручную, подскажите код как это делать на php и код проверки установлен ли индекс. Проверку выполнял - но мой код ни чего не вывел. |
Цитата:
|
Цитата:
|
laimas, MySQL, вероятно.
|
Nexus,
ну это судя по упоминанию об индексе, но блин, это как же надо думать, чтобы SQL прочесть как COЛ, и MY, как МУ :). |
wadim,
индекс таблицы это несколько иное, чем вы представляете. Я думаю, что речь идет не о нем, а о первичном ключе. Сортировку выборки из базы можно задать по любому полю, по любому условию и как в порядке возрастания, так и в порядке убывания. В последнем случае, это ORDER BY field DESC. |
Цитата:
|
ksa, я думал [май_с_кью_эль], а не "мускул" )
|
Цитата:
![]() |
ksa,
для него еще короче кликуха есть - Скул. ) |
laimas, речь именно о индексе, с выборкой SELECT все работает, но мне ни это нужно. Мне индекс нужен. Нужно что то вроде этого:
mysqli_query($myConnect, "CREATE INDEX `SredneeTimeStr` ON `апельсины дешевые`(SredneeTimeStr) ORDER BY `SredneeTimeStr` DESC "); |
Цитата:
|
В чем бред? Я еще в первом сообщении точно изложил задачу. Зачем индексы нужны я знаю. Для быстрой выборки и фильтрации(сортировки). Вот у меня при индексе имеется столбец со значениями 1,2,3. Столбец ранее был 1,3,2. После индекса стало 1,2,3. Как мне и нужно. Только одна деталь, мне нужно 3,2,1. И я хочу установить именно индекс так чтобы при чтении (SELECT) всегда получать уже готовый (фильтрованный) столбец: 3,2,1. То есть меня интересует создание индекса с настройкой DESC, что то вроде этого:
mysqli_query($myConnect, "CREATE INDEX `SredneeTimeStr` ON `апельсины дешевые`(SredneeTimeStr) ORDER BY `SredneeTimeStr` DESC "); Начинает ругаться с этого места: ORDER BY `SredneeTimeStr` DESC |
wadim, индексы создаются не для сортировки, а для более быстрого доступа к необходимым данным.
Закрепить за индексом какой-то порядок выборки не получится. Есть таблица `table` с 1 полем - `id` и тремя записями: 1,2,3. Вывести 1,2,3: SELECT * FROM table ORDER BY id ASC Вывести 3,2,1: SELECT * FROM table ORDER BY id DESC |
С чего Вы решили что не сортируется? В интернете написано что сортируется, у меня тоже сортируется. Проблема что нужно DESC, а SELECT * FROM table ORDER BY id ASC и я знаю, вот только Вам каждый раз придется выполнять сортировку при каждом запросе SELECT, что так нагрузит сервер, что уши покраснеют.
|
Цитата:
|
wadim,
вы путаете котлеты с мухами, а утверждаете что знаете. Указание порядка индекса нужно указывать для оператора: CREATE INDEX name (field DESC) соответственно ASC по умолчанию. А вы пишете везде создание индекса и попытку его сортировки. Как же вы читаете матчасть то? |
Цитата:
|
Не работает, вот полный код, сами проверьте:
mysqli_query($myConnect, "CREATE INDEX `SredneeTimeStr` ON `апельсины дешевые`(SredneeTimeStr DESC) "); $result= mysqli_query($myConnect, "SELECT `SredneeTimeStr` FROM `апельсины дешевые` "); while ($arr= mysqli_fetch_assoc($result)) $ar[]= $arr['SredneeTimeStr']; print_r ($ar); |
Цитата:
Вы так и не понимаете назначение индексов, считая, что если задать индекс с порядком DESC, то указывать порядок сортировки в запросе ORDER BY field DESC не потребуется. И при создании индекса указывается имя ключа, а не `апельсины дешевые`. |
Часовой пояс GMT +3, время: 09:13. |