|
|
|
| Добрый вечер.
SELECT name,count FROM test LIMIT 4,2 WHERE name>=123
|
Почему не выполняется запрос? Где ошибка? | |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 15:35)
| | Конструкция LIMIT всегда располагается последней
SELECT name,count FROM test WHERE name>=123 LIMIT 4,2
|
| |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 15:35)
| |
SELECT name,`count` FROM test WHERE name>=123 LIMIT 4,2
|
P.S. count зарезервированное слово в Mysql и для корректной работы заносится в обратные кавычки | |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 15:35)
| | Спасибо огромное! В книгах, к сожалению, об этом не пишут.
UPD: забыл спросить, что делать то теперь?)
Как мне из записей с 4-6 выбрать те, у которых name>=123?
На SQL никак? Придется перебирать все записи в поисках большего 123х? | |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 16:06)
| | Че ты Вы вообще тут намутили :))
Вам ЧТО нужно? Объясните сразу и понятно!
Если что не ясно, подскажу: запрос cheopsа выбираTт поля name и count 2-х записей из последних 6 (т.е. 5 и 6), у которых поле name=>123 | |
|
|
|
|
|
|
|
для: ddhvvn
(03.12.2007 в 16:15)
| | Эммм... Теперь, кажется, начинаю понимать, что сказал глупость. Просто думал, что в MySQL действия выполняются поочереди: вначале он выберет все записи с "name>=123", а потом уже из них выберет 4,5,6 элементы. Такой способ нерационален (проверяются и нужные, и не нужные элементы на предмет ">=123"), поэтому я и огорчился %).
Теперь понял, что он понимает условие полностью.
Спасиб ещё раз. | |
|
|
|
|
|
|
|
для: ddhvvn
(03.12.2007 в 16:15)
| | запрос cheopsа не выбираTт ничего конкретного, поскольку LIMIT без ORDER BY смысла не несет. | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2007 в 19:03)
| | >запрос cheopsа не выбираTт ничего конкретного, поскольку LIMIT без ORDER BY смысла не несет.
Почему? Вроде по умолчанию сортируется по первичному ключу =)) | |
|
|
|
|
|
|
|
для: ddhvvn
(03.12.2007 в 19:11)
| | >Почему? Вроде по умолчанию сортируется по первичному ключу =))
нет.
Это не так. | |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 15:35)
| | Извините, что пишу здесь же, но новую тему из-за такого пустяка создавать не вижу смысла:
Нужно подсчитать количество элементов, удовлетворяющих условию. Делаю такой запрос:
SELECT count(name,'count') FROM test WHERE name>=123 LIMIT 4,2
|
Потом с помощью mysql_fletch_rows() считаю количество элементов.
Но, опять же, запрос некорректен. Если в скобочках count написать * или 1 значение, работает. С несколькими же элементами работать отказывается. Подозреваю, что опять ошибка в синтаксисе. | |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 19:04)
| | функция COUNT считает не число элементов, а число строк. И у нее один и строго один параметр. | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2007 в 19:10)
| | Спасибо.
Это усложняет задачу... | |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 19:12)
| | несильно. Но определиться с термином "последние" Вам придется. | |
|
|
|
|
|
|
|
для: nax
(03.12.2007 в 19:04)
| | Что-то интересное =)))
Вы запрашиваете кол-во И ТУТ ЖЕ его укаываете LIMITом :-D
Вам нужно кол-во чего? Всех записей удовлетворяющих условию?
SELECT count(*) FROM test WHERE name>=123
|
? | |
|
|
|
|
|
|
|
для: ddhvvn
(03.12.2007 в 19:10)
| | Да я к примеру :). Просто скопипастил тупо. Разумеется, в исходнике без лимита) | |
|
|
|
|
|
|
|
для: ddhvvn
(03.12.2007 в 19:10)
| | Разобрался.
В книгах, блин, ничему не учат. Всё приходит с опытом. | |
|
|
|