Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод из базы по определенным параметрам учитывая другие параметры [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Описание: )
LIME
Отправлено: 25 Октября, 2011 - 10:47:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




morosit пишет:
На tuareg вы наверно зря наехали
наверное вы правы
накипело ))
(Добавление)
tuareg давайте отставим эмоции и подумаем

КААААК? можно индексировать поле с повторяющимися значениями
(Добавление)
индексировать enum нонсенс
(Добавление)
tuareg
Цитата:
ORDER BY FIELD('status', '1','2','0')
этого я еще не дошел
не объясните сортировку?
(Добавление)
кто-нибудь поделитесь знанием
это работает?
 
 Top
tuareg
Отправлено: 25 Октября, 2011 - 11:01:44
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Я настоятельно рекомендую, почитать "MySQL Оптимизация производительности". Там это все описано довольно подробно и с примерами.
На счет объяснить сортировку--->>принудительно указываем в каком порядке сортировать по полю статус. не в порядке возр-я или убывания а именно нужном нам порядка.
На счет индекса, было бы не плохо если автор поста выложил запрос, наверняка там не только выбирается в порядке, но и еще как-то отсеиваются(например по URL) и если еще и тот параметр внести в индекс первым, то тогда вообще будет идеально
 
 Top
LIME
Отправлено: 25 Октября, 2011 - 11:05:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




tuareg пишет:
принудительно указываем в каком порядке сортировать по полю статус. не в порядке возр-я или убывания а именно нужном нам порядка.
это понято
спасибо
tuareg пишет:
На счет индекса,
либо я дурак либо одно из двух
 
 Top
Мелкий Супермодератор
Отправлено: 25 Октября, 2011 - 11:05:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




LIME пишет:
как можно индексировать одинаковые значения

Обыкновенно. Индексы бывает не только уникальные.

По теме вопроса - поддерживаю вариант, что предложил tuareg.

И заканчиваем ссориться. Кто устал - сделайте перерыв, отдохните от сетевой общественности.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 25 Октября, 2011 - 11:08:44
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий хм...видимо и правда стоит отдохнуть
tuareg прошу извинить...чето я...
продлжать не буду ...еще раз сорь
 
 Top
tuareg
Отправлено: 25 Октября, 2011 - 11:09:53
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




[quote=Мелкий]
Спасибо за поддержку Улыбка , то что я мало пишу, просто я стараюсь писать там где я уверен практически на 100%. И да я лучше ориентируюсь в MySQL, чем PHP
 
 Top
LIME
Отправлено: 25 Октября, 2011 - 11:13:37
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкийtuareg просвятите в чем смысл индексировать enum?
не понимаю
 
 Top
Мелкий Супермодератор
Отправлено: 25 Октября, 2011 - 11:22:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




LIME пишет:
просвятите в чем смысл индексировать enum?

За тем же, зачем и по другим полям строятся индексы.
enum 65тыс значений как-никак может содержать, по какому-нибудь непопулярному значению по индексу отсекать лишнее - милое дело.

tuareg пишет:
просто я стараюсь писать там где я уверен практически на 100%

И это правильно.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 25 Октября, 2011 - 11:25:16
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий я про данный случай
тут всего 3 значения
непонимаю
 
 Top
tuareg
Отправлено: 25 Октября, 2011 - 11:25:42
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Использование индекса. Пускай и с маленькой селективностью
Если мы включим этот столбец, это позволит MySQL использовать больший префикс индек-
са.
 
 Top
LIME
Отправлено: 25 Октября, 2011 - 11:26:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




все
я понял что надо почитать
спс
 
 Top
dropoff
Отправлено: 25 Октября, 2011 - 17:17:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




tuareg пишет:

Попробуйте так SELECT ........ ORDER BY FIELD('status', '1','2','0'),`price`;
<---->По возможности оптимизация---->
Сделайте `status` tinyint(1) NOT NULL DEFAULT '0'
Если есть возможность `price` varchar(255) DEFAULT NULL, сделайте int() и просто при вызове добавляйте 'цена '.$cena
<--->
Сделайте index по полю status и price.


Спасибо, получилось.

По поводу оптимизации...
Я с индексами пока не до конца уяснил) Знаю, что нужно проставлять.
Но вот бывает, что товар на разных страницах нужно выводить с разными сортировками.
Как тогда индексы проставлять?
Если где-то идет сорт. по рейтингу, где-то по имени, где-то по отзывать, где-то сразу по нескольким критериям...

price - поправлю походу на int.

Спасибо tuareg и LIME!
 
 Top
EuGen Администратор
Отправлено: 25 Октября, 2011 - 17:31:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dropoff
Отправлено: 26 Октября, 2011 - 02:52:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




EuGen, спасибо!
 
 Top
dropoff
Отправлено: 18 Декабря, 2011 - 14:13:31
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Подниму еще раз тему.

С FIELD('status', '1','2','0') понятно, спасибо.

А если нужно вытянуть данные так.
Количество - любое число от 9999 и 0. Т.е. если больше 0, то есть в наличии, если 0, то нет в наличии
и по sort_order от 1 и по возрастающей.

Т.е. нужно выводить, к примеру товары по sort_order по возрастающей и сразу те, которые есть в наличии, а не, которых нет в наличии (quantity = 0), выводить в самом конце.

Что-то гуглил, яндексил, так и не понял как так делать сортировку.
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB