Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.03.2018, 10:59
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

laimas, речь именно о индексе, с выборкой SELECT все работает, но мне ни это нужно. Мне индекс нужен. Нужно что то вроде этого:
mysqli_query($myConnect, "CREATE INDEX `SredneeTimeStr` ON `апельсины дешевые`(SredneeTimeStr) ORDER BY `SredneeTimeStr` DESC ");

Последний раз редактировалось wadim, 13.03.2018 в 11:33.
Ответить с цитированием
  #12 (permalink)  
Старый 13.03.2018, 12:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от wadim
речь именно о индексе, с выборкой SELECT все работает, но мне ни это нужно. Мне индекс нужен.
А вы знаете для чего существуют индексы? А если знаете, значит должны и понимать, то что вы написали, это сущий бред.
Ответить с цитированием
  #13 (permalink)  
Старый 13.03.2018, 16:55
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 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
Ответить с цитированием
  #14 (permalink)  
Старый 13.03.2018, 17:02
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

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
Ответить с цитированием
  #15 (permalink)  
Старый 13.03.2018, 17:07
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

С чего Вы решили что не сортируется? В интернете написано что сортируется, у меня тоже сортируется. Проблема что нужно DESC, а SELECT * FROM table ORDER BY id ASC и я знаю, вот только Вам каждый раз придется выполнять сортировку при каждом запросе SELECT, что так нагрузит сервер, что уши покраснеют.
Ответить с цитированием
  #16 (permalink)  
Старый 13.03.2018, 17:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от wadim
Зачем индексы нужны я знаю.
Из того что написано, этого не видно.
Ответить с цитированием
  #17 (permalink)  
Старый 13.03.2018, 17:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

wadim,
вы путаете котлеты с мухами, а утверждаете что знаете. Указание порядка индекса нужно указывать для оператора:

CREATE INDEX name (field DESC)

соответственно ASC по умолчанию.

А вы пишете везде создание индекса и попытку его сортировки. Как же вы читаете матчасть то?
Ответить с цитированием
  #18 (permalink)  
Старый 13.03.2018, 17:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Сообщение от wadim
что так нагрузит сервер, что уши покраснеют
У вас хоть миллион записей в таблице есть, чтобы уши краснели или вы на кофеварке сервер бд развернули?
Ответить с цитированием
  #19 (permalink)  
Старый 14.03.2018, 08:59
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 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);
Ответить с цитированием
  #20 (permalink)  
Старый 14.03.2018, 09:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от wadim
Не работает, вот полный код, сами проверьте
Зачем? В документацию нужно заглядывать. Порядок DESC индекса в полной мере поддерживается MySQL начиная с версии 8, до этой версии задание его не является ошибкой, просто это будет игнорироваться.

Вы так и не понимаете назначение индексов, считая, что если задать индекс с порядком DESC, то указывать порядок сортировки в запросе ORDER BY field DESC не потребуется.

И при создании индекса указывается имя ключа, а не `апельсины дешевые`.

Последний раз редактировалось laimas, 14.03.2018 в 12:06.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получить индекс активного изображения из карусели DynkanMaclaud Events/DOM/Window 5 29.11.2014 17:40
Установить класс всем элементам с похожими именами, Id, элементам одного класса sergey_privacy Events/DOM/Window 12 27.01.2014 17:27
вернуть индекс селектора ArmagedDance jQuery 1 15.12.2011 09:56
Как найти индекс по элементу в двумерном массиве? bayah Общие вопросы Javascript 5 22.04.2010 16:26
Для события onCLick получить индекс строки и объект грида. progi2007 ExtJS 4 05.08.2009 11:31