1..$_

From
Viktor Smirnov (2:5066/198)
To
Губарев Алексей
Date
2006-05-29T00:18:04Z
Area
SU.DBMS.SQL
Здравствуй Губарев.
 По моему, пpимеpно в 09:29 25 май 06 наверно Губарев Алексей кажется что-то
писал возможно к Kalachihin Vladimir:

ГА> From: "Губарев Алексей" <prokl@vgok.unets.ru>

>> VS> +----+-------+
>> VS> | ID | cells |
>> VS> +----+-------+
>> VS> | id |   N   |
>> VS> +----+-------+
>> VS> нужно чтобы при WHERE ID=id результатом была последовательность
>> VS> 1 2 3
>> VS> ... N, а не просто N
>> Последовательность до N - это обломись, а до id - легко.
ГА> Не совсем понял, чего надо, но если id типа serial (counter), а cell
ГА> содержит только значения id, то
ГА> SELECT id FROM test WHERE ID<=(SELECT cell FROM test WHERE ID=id )

результатом запроса дожна стать _последовательность_ от 1 до N
например
+-------+
| cells | результат
+-------+
|   5   | 1 2 3 4 5
|   13  | 1 2 3 4 5 6 ... 13
|   32  | 1 2 3 4 5 6 ... 32
+-------+
повторю: mysql 3.23, он не поддерживает вложенные запросы.


в качестве костыля использую промежуточную таблицу *cells*

===8<=== начинается Windows Clipboard ===8<===
--------------
SELECT * FROM cells
--------------

+--------+------+------+--------+
| key_id | ID   | name | active |
+--------+------+------+--------+
|      1 |    0 | ┬ёх  | yes    |
|      2 |    1 | 1    | yes    |
|      3 |    2 | 2    | yes    |
|      4 |    3 | 3    | yes    |
|      5 |    4 | 4    | yes    |
|      6 |    5 | 5    | yes    |
|      7 |    6 | 6    | yes    |
|      8 |    7 | 7    | yes    |
|      9 |    8 | 8    | yes    |
|     10 |    9 | 9    | yes    |

[skipped]


--------------
SELECT cells FROM obj
WHERE ID=25
--------------

+-------+
| cells |
+-------+
|     4 |
+-------+
1 row in set (0.00 sec)

--------------
SELECT cells.key_id FROM cells
INNER JOIN obj ON obj.ID=25
WHERE key_id<=obj.cells ORDER BY key_id
--------------

+--------+
| key_id |
+--------+
|      1 |
|      2 |
|      3 |
|      4 |
+--------+
4 rows in set (0.00 sec)

Bye
===8<==== кончился Windows Clipboard ====8<===

другого способа не нашел.
этот работает, но имхо _весьма_ не оптимально

 С уважением, Viktor Smirnov.
... mail:meteoviktor@mail.ru  icq:168881308  beeline:89051972587
---
 * Origin: Ты че плетешь, гад?! (2:5066/198.0)
SEEN-BY: 50/12 203 450/159 186 1024 451/30 454/9 461/43 132 640 469/999
SEEN-BY: 4614/20 4616/3 4625/8 4641/444 5000/76 5000 5001/5001 5006/1 5007/1
SEEN-BY: 5010/53 70 5011/13 5012/23 46 5015/28 5019/31 5020/86 175 194 400 545
SEEN-BY: 5020/639 715 758 830 982 1057 1200 1523 1604 1665 1909 1922 2013 2238
SEEN-BY: 5020/4441 5021/3 29 5022/128 5025/3 750 5026/10 14 45 5027/12 5029/32
SEEN-BY: 5030/217 436 473 556 966 1063 1080 1339 1900 5035/38 5036/1 5040/47
SEEN-BY: 5042/13 5045/7 5047/47 5049/1 5051/15 5054/1 8 9 28 35 37 45 63 67
SEEN-BY: 5055/95 5057/1 5059/9 5060/88 5061/15 5062/1 5066/2 9 18 70 71 72 111
SEEN-BY: 5066/132 133 198 314 5077/70 5080/68 1003 5082/6 5083/21 5084/32
SEEN-BY: 5085/13 5090/106 5093/27 5095/20 5096/18 5099/133 6009/1
PATH: 5066/198 132 133 18 5020/400 4441 545 5054/1 37