Автор Тема: Помогите с MySQL, pls!  (Прочитано 3006 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн JV

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с MySQL, pls!
« : 16 Января 2004, 15:03:33 »
можно ли как-нить в запросе упорядочить результат по частному от деления 2х столбцов?
т.е. например в таблице есть 2 столбца q и w, и мне надо дословно:
SELECT * FROM table ORDER BY q/w; ??
как это можно обойти?

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Помогите с MySQL, pls!
« Ответ #1 : 16 Января 2004, 15:29:05 »
Упорядочить (отсортировать) при выборке - только с помощью ORDER BY.
Надо "по частному от деления" - либо заведи такой столбец и поддерживай его в нужном состоянии (гон), либо делай как написал.
Что и зачем обойти?

Оффлайн JV

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с MySQL, pls!
« Ответ #2 : 16 Января 2004, 15:33:17 »
такой запрос не работает ))
заводить столбец - это лишнее. Неужели в MySQL нет способа, чтобы отсортировать по результату некоторых действий (в данн. случ - деления), а можно только с использованием внешних массивов?

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Помогите с MySQL, pls!
« Ответ #3 : 16 Января 2004, 15:55:27 »
mysql> create table t (i1 int, i2 int);
Query OK, 0 rows affected (0.01 sec)

mysql> insert t set i1 = 1, i2 = 5;
Query OK, 1 row affected (0.00 sec)

mysql> insert t set i1 = 2, i2 = 5;
Query OK, 1 row affected (0.00 sec)

mysql> select * from t order by i2/i1;
+------+------+
| i1   | i2   |
+------+------+
|    2 |    5 |
|    1 |    5 |
+------+------+
2 rows in set (0.00 sec)

mysql> select * from t order by i2/i1 desc;
+------+------+
| i1   | i2   |
+------+------+
|    1 |    5 |
|    2 |    5 |
+------+------+
2 rows in set (0.00 sec)

Оффлайн JV

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с MySQL, pls!
« Ответ #4 : 16 Января 2004, 16:39:09 »
Да, че-то я глюк поймала ))
и замудрила таким образом:
SELECT *, i1/i2 AS ttt FROM pics ORDER BY ttt;

спасибо за помощь ))

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Помогите с MySQL, pls!
« Ответ #5 : 16 Января 2004, 16:53:59 »
Так тоже работает.

mysql> SELECT *, i1/i2 AS ttt FROM t ORDER BY ttt;
+------+------+------+
| i1   | i2   | ttt  |
+------+------+------+
|    1 |    5 | 0.20 |
|    2 |    5 | 0.40 |
+------+------+------+
2 rows in set (0.00 sec)

mysql> SELECT *, i1/i2 AS ttt FROM t ORDER BY ttt desc;
+------+------+------+
| i1   | i2   | ttt  |
+------+------+------+
|    2 |    5 | 0.40 |
|    1 |    5 | 0.20 |
+------+------+------+
2 rows in set (0.00 sec)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28