|
|
|
| Есть поле1, поле2, и поле3. В первую очередь нужно сортировать по полю1(то есть чтобы в нем было значение больше нуля). Затем сортировка должна идти по полю3 со значением - yes и с условием, что в поле2 стоит единичка. И после этого всего должны выбираться записи в которых поле1 имеет значение меньше одного.
Каким образом можно сделать сортировку с такими критериями по этим трем полям?
Очень жду помощи и заранее большое спасибо! | |
|
|
|
|
|
|
|
для: vilk
(27.03.2011 в 15:40)
| | судя по всему сортировка будет только по "поле1" и запрос будет выглядеть как-то так (если я правильно понял задачу)
SELECT * FROM tablename
WHERE поле3='yes' AND поле2=1
ORDER BY поле1 DESC
|
| |
|
|
|
|
|
|
|
для: psychomc
(27.03.2011 в 15:50)
| | Спасибо за ответ но дело в том, что должны выводится все записи не зависимо от того, что в поле3 и в поле2. Просто в сортировке должно учитываться то, что в первую очередь выбираются записи где поле1 больше нуля, потом сразу в этом же запросе выбираются поля в которых поле3='yes' AND поле2=1 и затем в этом же запросе выбираются записи в которых поле1 меньше одного не зависимо от того, что в поле2 и поле3 .
То есть то, что я описал, это этапы сортировки должны быть такими, но запрос один который выбирает все данные. | |
|
|
|
|
|
|
|
для: vilk
(27.03.2011 в 16:24)
| | Тогда можно поступить следующим образом
SELECT * FROM tbl
ORDER BY поле1, IF(поле3='yes' AND поле2=1, 0, 1)
|
| |
|
|
|
|
|
|
|
для: cheops
(27.03.2011 в 16:52)
| | Отлично. Большое спасибо! | |
|
|
|