Най-положителните 2 коментара най-отгоре

kWo_2

Registered
В момента извеждам коментарите си нормално, но бих искал да ви попитам как трябва да променя заявката за да изкарам най-отгоре 2 коментара, които са с най-много `polojitelni`, а отдоло да си се извеждат нормално.
 
Пробвай с [sql]ORDER by `polojitelni` ASC[/sql] в края на MySQL заявката ти. :)
 
Така ще ми ги сортира по положителните всички, а аз искам да спестя отделна заявка за да изведа отгоре само 2 с най-много положителни, а останалите да си излизат както си му е реда. :)
 
Няма ли да ми се изведът само 2 коментара по този начин :roll: ..
 
трябва да го направиш с две заявки към базата първата за тези два положителни коментара [sql]ORDER by `polojitelni` ASC LIMIT 2[/sql] а втората си е както обикновенно ;)
 
Аха, значи чрез една заявка не мога да постигна този резултат.. тка ли да разбирам :)
 
трябват ти 2 заявки.

с едната извеждаш кои са най-много положителни
с другата вече ги изкарваш като резултат.
 
Не съм сигурерн но мисля е не с една заявка можеш да ги подредиш по положителни но не само 2 коментара но не съм сигурен :)
 
vojda_na_inkite каза:
трябва да го направиш с две заявки към базата първата за тези два положителни коментара [sql]ORDER by `polojitelni` ASC LIMIT 2[/sql] а втората си е както обикновенно ;)
Вожде, близо си :wink: ама много! С твое позволение :
[sql]DROP TABLE IF EXISTS testova;
CREATE TABLE testova (id INT AUTO_INCREMENT PRIMARY KEY,
comments text,
polojitelni int);

INSERT INTO testova (comments,polojitelni) VALUE('bla',1),
('bla',2),
('bla',3),
('bla',4),
('bla',5);

(SELECT * FROM testova ORDER BY polojitelni DESC LIMIT 2)
UNION
(SELECT * FROM testova ORDER BY id ASC);
[/sql]
mysql> (SELECT * FROM testova ORDER BY polojitelni DESC LIMIT 2)
-> UNION
-> (SELECT * FROM testova ORDER BY id ASC);
+----+----------+-------------+
| id | comments | polojitelni |
+----+----------+-------------+
| 5 | bla | 5 |
| 4 | bla | 4 |
| 1 | bla | 1 |
| 2 | bla | 2 |
| 3 | bla | 3 |
+----+----------+-------------+
5 rows in set (0.03 sec)
 

Back
Горе