Sql запрос

12
A
На сайте с 18.02.2009
Offline
46
709

Как в 1 запросе для поля со значением 1 сделать limit 20, а для поля со значением 0 limit 1?

Аккаунты на торрент-трекеры. () Тут дают деньги!!! (http://Pop-Bazar.com/registration.php?ref=2115)
[umka]
На сайте с 25.05.2008
Offline
456
#1

только двумя select-ами

Лог в помощь!
skAmZ
На сайте с 04.09.2009
Offline
122
#2


select * from (select * from table_name where column=1 limit 20) as t1
union
select * from (select * from table_name where column=0 limit 1) as t2
[umka]
На сайте с 25.05.2008
Offline
456
#3
skAmZ:

select * from (select * from table_name where column=1 limit 20) as t1
union
select * from (select * from table_name where column=0 limit 1) as t2

Я же говорил двумя select-ами, а не четырьмя ))

(SELECT * FROM table WHERE field=1 LIMIT 20) UNION (SELECT * FROM table WHERE field=0 LIMIT 1)

skAmZ
На сайте с 04.09.2009
Offline
122
#4

Согласен, у вас вариант лучше. Но все же лучше, вашего первого ответа:

только двумя select-ами

ИМХО 2 запроса и 1 запрос с union совершенно разные вещи.

A
На сайте с 18.02.2009
Offline
46
#5

Почему ругается на этот код?

Parse error: syntax error, unexpected T_STRING

$query = mysql_query("SELECT * FROM files WHERE file_visibility='1' order by file_time desc LIMIT ".(($page)*20).",20") UNION ("SELECT * FROM files WHERE file_visibility='0' order by file_time desc LIMIT 1");

skAmZ
На сайте с 04.09.2009
Offline
122
#6
allmuz:
Почему ругается на этот код?

Много причин...


$query = mysql_query("(SELECT * FROM files WHERE file_visibility='1' order by file_time desc LIMIT ".(($page)*20).",20) UNION (SELECT * FROM files WHERE file_visibility='0' order by file_time desc LIMIT 1)");
A
На сайте с 18.02.2009
Offline
46
#7

А еще 1 вопрос: есть у меня в таблицы повторяющиеся цифры, например 10, как мне выводить только последнюю добавленную, но кроме повторяющихся есть и другие, уникальные их нужно все выводить.

Например я добавил 5, 3, 234, 53, 533, 4, 4, 4, 253, 544, 6,6,6

И надо вывести: 5,3,234,53,533,4,253,544,6

Как это сделать, 2е сутки голову ломаю.

п.с. скажем проще, вместо цифр у меня у меня фильмы и серии сериалов, вот нужно фильмы выводить все, а серии только последние с каждого сериала.

skAmZ
На сайте с 04.09.2009
Offline
122
#8

allmuz, смотря в каком виде у вас хранится, если каждая цифра это отдельная строка...

Вы пример привели не корректный...

Конкретно ваш пример пример:


select distinct column from table

Но как я понимаю вам надо не много другое...

Короче, показывайте свою структуру таблиц, не буду же я гадать....

A
На сайте с 18.02.2009
Offline
46
#9


`file_id` int(10) NOT NULL auto_increment,
`file_name` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`film_name` varchar(255) NOT NULL default '',
`film_god` text NOT NULL,
`film_janr` varchar(255) NOT NULL default '',
`country` varchar(255) NOT NULL default '',
`rejiser` varchar(255) NOT NULL default '',
`actors` text NOT NULL,
`time` varchar(255) NOT NULL default '',
`file_kachestvo` text NOT NULL,
`file_razmer` text NOT NULL,
`video` varchar(255) NOT NULL default '',
`audio` varchar(255) NOT NULL default '',
`poster` varchar(255) NOT NULL default '',
`file_server` varchar(255) NOT NULL default '',
`file_time` datetime NOT NULL default '1999-12-31 23:59:59',
`file_category` int(10) NOT NULL default '0',
`file_serial` int(10) NOT NULL,
`file_description` longtext,
`file_rating` int(10) NOT NULL default '0',
`file_visibility` enum('1','0') NOT NULL default '1',
`file_uploader` varchar(255) default NULL,
`file_downloads` int(10) default NULL,

В поле file_serial записывается ID сериала, в file_visibility записывается 1 если фильм, 0 если сериал.

skAmZ
На сайте с 04.09.2009
Offline
122
#10

Выроб последних серий каждого сериала:


select * from (select * from table order by file_id desc) as t group by file_serial

Вместо file_id лучше использовать поле "номер серии", если у вас есть такое...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий