Столкнулся с такой фигней. В таблице базы (mysql) есть столбец.
Тип mediumint (11),
в нем записи, именно в таком порядке
26000
44000
35500
99000
18000
83000
Есть запрос
SELECT `k_3` FROM `zeny` GROUP BY `k_3` ORDER BY `k_3`DESC
Почему он вытаскивает 83000 а не 99000?
Причем в других полях то же идет выборка либо минимума, либо максимума, все нормально. Только вот в этом. Ну там числа чуть меньше.
Че за фигня?
Спустя 6 минут, 26 секунд (18.12.2011 - 18:22) Winston написал(а):
Используй MIN() MAX()
Спустя 1 час, 15 минут, 41 секунда (18.12.2011 - 19:38) inpost написал(а):
Sergen
А зачем группировку? Убери её.
А зачем группировку? Убери её.
Спустя 31 минута, 9 секунд (18.12.2011 - 20:09) Sergen написал(а):
Да я как раз с них и начинал. Кстати, погуглив обнаружил что многие сталкиваются с проблемами при использовании этих операторов
SELECT MAX(k_3) FROM `zeny` GROUP BY `k_3`
И все,ничего не выдается
SELECT MAX(k_3) FROM `zeny` GROUP BY `k_3`
И все,ничего не выдается
Спустя 2 минуты, 29 секунд (18.12.2011 - 20:11) Игорь_Vasinsky написал(а):
MAX(`k_3`) as `maximum`
Спустя 3 минуты, 32 секунды (18.12.2011 - 20:15) inpost написал(а):
Sergen
Убери группировку....
Убери группировку....
Спустя 8 минут, 56 секунд (18.12.2011 - 20:24) Sergen написал(а):
Цитата (inpost @ 18.12.2011 - 17:15) |
Sergen Убери группировку.... |
Почему убрать, а если дубликат?
И кстати, вот синтаксис с мускульного сайта
SELECT student_name, MIN(test_score), MAX(test_score)
FROM student
GROUP BY student_name;
Спустя 7 минут, 37 секунд (18.12.2011 - 20:31) Sergen написал(а):
Цитата (Игорь_Vasinsky @ 18.12.2011 - 17:11) |
MAX(`k_3`) as `maximum` |
Не-а, не работает.
Спустя 17 минут, 18 секунд (18.12.2011 - 20:49) inpost написал(а):
Sergen
У тебя с логикой всё впорядке? Какой САМЫЙ ВЫСОКИЙ? Ответ: Вася и Петя... НЕ МОЖЕТ БЫТЬ ТАКОГО, Если самый высокий Петя, то ОН САМЫЙ, ОН №1. Не бывает 2 человека №1. Второй человек всегда будет №2!!!!
Это тебе не школа, "Вы мои детишки самые лучшие", это точная наука, если один самый лучший, то второй будет именно вторым, а третий - третьим!
У тебя с логикой всё впорядке? Какой САМЫЙ ВЫСОКИЙ? Ответ: Вася и Петя... НЕ МОЖЕТ БЫТЬ ТАКОГО, Если самый высокий Петя, то ОН САМЫЙ, ОН №1. Не бывает 2 человека №1. Второй человек всегда будет №2!!!!
Это тебе не школа, "Вы мои детишки самые лучшие", это точная наука, если один самый лучший, то второй будет именно вторым, а третий - третьим!
Спустя 14 минут, 18 секунд (18.12.2011 - 21:03) Sergen написал(а):
inpost
Че-то меня переклинило.
Я сначала хотел выводить в цикле, а потом передумал, а группировка осталась....
Не, за компом сидеть по 14 часов не хорошо
Че-то меня переклинило.
Я сначала хотел выводить в цикле, а потом передумал, а группировка осталась....
Не, за компом сидеть по 14 часов не хорошо

Спустя 11 минут, 22 секунды (18.12.2011 - 21:14) inpost написал(а):
Sergen
Какой нафиг цикл? Цикл для вывода нескольких записей, лучший = это №1, он только один!
Какой нафиг цикл? Цикл для вывода нескольких записей, лучший = это №1, он только один!
Спустя 16 минут, 40 секунд (18.12.2011 - 21:31) Sergen написал(а):
Не понял...Если у меня две одинаковые строки 99000 99000
И через запрос:
SELECT `k_3` FROM `zeny` ORDER BY `k_3`DESC
в цикле они не появятся в выдаче что ли?
И через запрос:
SELECT `k_3` FROM `zeny` ORDER BY `k_3`DESC
в цикле они не появятся в выдаче что ли?
Спустя 2 минуты, 27 секунд (18.12.2011 - 21:34) Winston написал(а):
Значит напиши SELECT DISTINCT ... чтобы не было повторов !
Спустя 15 минут, 25 секунд (18.12.2011 - 21:49) Sergen написал(а):
Все сейчас попробовал, убрал group выдал правильно.
Спасибо !
Спасибо !
Спустя 5 часов, 12 минут, 34 секунды (19.12.2011 - 03:01) inpost написал(а):
Цикл тебе не нужен. Первую запись выбрал и всё. Если так сильно переживаешь за экономию, напиши LIMIT 1, но никак не группировку, хотя я не думаю, что тебе сейчас важна скорость и производительность!
