13.03.2018, 10:59
|
Профессор
|
|
Регистрация: 20.01.2014
Сообщений: 150
|
|
laimas, речь именно о индексе, с выборкой SELECT все работает, но мне ни это нужно. Мне индекс нужен. Нужно что то вроде этого:
mysqli_query($myConnect, "CREATE INDEX `SredneeTimeStr` ON `апельсины дешевые`(SredneeTimeStr) ORDER BY `SredneeTimeStr` DESC ");
Последний раз редактировалось wadim, 13.03.2018 в 11:33.
|
|
13.03.2018, 12:23
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от wadim
|
речь именно о индексе, с выборкой SELECT все работает, но мне ни это нужно. Мне индекс нужен.
|
А вы знаете для чего существуют индексы? А если знаете, значит должны и понимать, то что вы написали, это сущий бред.
|
|
13.03.2018, 16:55
|
Профессор
|
|
Регистрация: 20.01.2014
Сообщений: 150
|
|
В чем бред? Я еще в первом сообщении точно изложил задачу. Зачем индексы нужны я знаю. Для быстрой выборки и фильтрации(сортировки). Вот у меня при индексе имеется столбец со значениями 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
|
|
13.03.2018, 17:02
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
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
|
|
13.03.2018, 17:07
|
Профессор
|
|
Регистрация: 20.01.2014
Сообщений: 150
|
|
С чего Вы решили что не сортируется? В интернете написано что сортируется, у меня тоже сортируется. Проблема что нужно DESC, а SELECT * FROM table ORDER BY id ASC и я знаю, вот только Вам каждый раз придется выполнять сортировку при каждом запросе SELECT, что так нагрузит сервер, что уши покраснеют.
|
|
13.03.2018, 17:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от wadim
|
Зачем индексы нужны я знаю.
|
Из того что написано, этого не видно.
|
|
13.03.2018, 17:21
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
wadim,
вы путаете котлеты с мухами, а утверждаете что знаете. Указание порядка индекса нужно указывать для оператора:
CREATE INDEX name (field DESC)
соответственно ASC по умолчанию.
А вы пишете везде создание индекса и попытку его сортировки. Как же вы читаете матчасть то?
|
|
13.03.2018, 17:24
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от wadim
|
что так нагрузит сервер, что уши покраснеют
|
У вас хоть миллион записей в таблице есть, чтобы уши краснели или вы на кофеварке сервер бд развернули?
|
|
14.03.2018, 08:59
|
Профессор
|
|
Регистрация: 20.01.2014
Сообщений: 150
|
|
Не работает, вот полный код, сами проверьте:
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);
|
|
14.03.2018, 09:46
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от wadim
|
Не работает, вот полный код, сами проверьте
|
Зачем? В документацию нужно заглядывать. Порядок DESC индекса в полной мере поддерживается MySQL начиная с версии 8, до этой версии задание его не является ошибкой, просто это будет игнорироваться.
Вы так и не понимаете назначение индексов, считая, что если задать индекс с порядком DESC, то указывать порядок сортировки в запросе ORDER BY field DESC не потребуется.
И при создании индекса указывается имя ключа, а не `апельсины дешевые`.
Последний раз редактировалось laimas, 14.03.2018 в 12:06.
|
|
|
|