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 :: SELECT выборка с сортировкой

 PHP.SU

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


 Страниц (1): [1]   

> Описание: синтаксис
divine108
Отправлено: 20 Февраля, 2012 - 10:03:01
Post Id


Новичок


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


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




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

$result = mysql_query("SELECT UID,City,Area,Ammount,Title FROM Records ORDER BY UID LIMIT 4") or die("Invalid query: " . mysql_error());
 
 Top
Panoptik
Отправлено: 20 Февраля, 2012 - 10:23:41
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` ORDER BY `id` LIMIT 4,1


-----
Just do it
 
 Top
divine108
Отправлено: 20 Февраля, 2012 - 10:26:32
Post Id


Новичок


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


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




Спасибо, вот эта запись за лимитом два числа, что значит?
И еще вопрос, как допустим выбрать по полю DATE , TIMESTAMP там у меня с секундами..
Также можно?

И как быть если допустим нужна четвертая запись с конца таблицы?

(Отредактировано автором: 20 Февраля, 2012 - 10:32:07)

 
 Top
Мелкий Супермодератор
Отправлено: 20 Февраля, 2012 - 10:37:17
Post Id



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


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


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




divine108 пишет:
Спасибо, вот эта запись за лимитом два числа, что значит?

limit с_какой_строки, сколько_строк
(Добавление)
divine108 пишет:
И как быть если допустим нужна четвертая запись с конца таблицы?

Определитесь, что такое конец таблицы, отсортируйте в обратном порядке и выберите 4-ую запись.


-----
PostgreSQL DBA
 
 Top
Dezmont
Отправлено: 20 Февраля, 2012 - 13:05:22
Post Id



Частый гость


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


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




divine108 пишет:
Спасибо, вот эта запись за лимитом два числа, что значит?
И еще вопрос, как допустим выбрать по полю DATE , TIMESTAMP там у меня с секундами..
Также можно?

И как быть если допустим нужна четвертая запись с конца таблицы?


По полю DATE,TIMESTAMP точно так же можете сортировать. Чтобы выбрать 4 запись с конца, просто добавьте DESC.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` ORDER BY `id` DESC LIMIT 3,1
 
 Top
divine108
Отправлено: 20 Февраля, 2012 - 13:17:40
Post Id


Новичок


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


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




Спасибо!
 
 Top
divine108
Отправлено: 21 Февраля, 2012 - 09:06:18
Post Id


Новичок


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


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




Еще один вопрос, требуется из таблицы выбрать 6 фирм производителей товаров, названия фирм их их ИД хранятся в одной таблице, товары в другой, в таблице товаров у каждой записи есть ИД фирмы производителя.
Как составить mysql запрос так, чтобы он вывел 6 фирм спектр товаров которых наиболее широко представлен. То-есть те 6 первых фирмы , у которых в таблице товаров больше всех.
 
 Top
Panoptik
Отправлено: 21 Февраля, 2012 - 09:13:41
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




если скажем есть таблица фирмы (brand) с полями (id,name)
и таблица товаров (good) с полями (id, brand) запрос будет примерно таким
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `brand`.*, COUNT(`good`.`id`) AS `goods` FROM `brand` LEFT JOIN `good` ON `good`.`brand` = `brand`.`id` GROUP BY `good`.`id` ORDER BY `goods` DESC LIMIT 6

(Отредактировано автором: 21 Февраля, 2012 - 09:14:24)



-----
Just do it
 
 Top
divine108
Отправлено: 21 Февраля, 2012 - 12:06:25
Post Id


Новичок


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


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




Спасибо!

(Отредактировано автором: 21 Февраля, 2012 - 12:17:53)

 
 Top
divine108
Отправлено: 21 Февраля, 2012 - 14:21:48
Post Id


Новичок


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


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




Panoptik пишет:
если скажем есть таблица фирмы (brand) с полями (id,name)
и таблица товаров (good) с полями (id, brand) запрос будет примерно таким
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `brand`.*, COUNT(`good`.`id`) AS `goods` FROM `brand` LEFT JOIN `good` ON `good`.`brand` = `brand`.`id` GROUP BY `good`.`id` ORDER BY `goods` DESC LIMIT 6


У меня к Вам просьба, разберите пожалуйста этот запрос по частям чтобы понять как он работает, я повторил тупо, но понять его механизм не могу. Что этот синтаксис значит?
 
 Top
snikers987
Отправлено: 21 Февраля, 2012 - 14:33:53
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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






-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Panoptik
Отправлено: 21 Февраля, 2012 - 14:42:02
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




divine108 пишет:
У меня к Вам просьба, разберите пожалуйста этот запрос по частям чтобы понять как он работает, я повторил тупо, но понять его механизм не могу. Что этот синтаксис значит?
а этот запрос еще и работает? я его от фонаря написал)))
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.   SELECT 'список_полей, которые можно получить'
  3.   FROM 'из какой таблицы'
  4.   JOIN 'объединяем таблицы связывая их как описано ниже'
  5.   ON ' относится к JOIN тут описывается условие по какому будут объединяться таблицы: таблица1.поле(первичный_ключ) = таблица2.поле(внешний_ключ)'
  6.   GROUP BY 'так как в запрос попадут все товары, которые нам не нужны, мы групируем их'
  7.   ORDER BY 'сортируем по количеству товаров для каждой фирмы COUNT(`good`.`id`)'
  8.   DESC 'относится к сортировке - означает что сортировать будем от большего к меньшему'
  9.   LIMIT 'ограничиваем вывод первыми N записями'
  10.  


-----
Just do it
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB