Hi,
In SQL you need to define the data that you want to work with:
create table z ( z int(5) not null primary key);
insert into z values
(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22);
If you need more values you could use a simple perl looping construct:
for ($i=0; $i <= $max; $i++) {
$dbh->do( q{ insert into z set z = $i });
}
Once you have the table filled, it's easy to explode the x/y ranges by seq:
select seq, z
from wibble, z
where z between x and y
Then the rows with seq=1 are:
| seq | z |
+-----+----+
| 1 | 5 |
| 1 | 6 |
| 1 | 7 |
| 1 | 8 |
| 1 | 9 |
| 1 | 10 |
The rest is as you wanted.
Regards, Paul
On 14/4/05 1:11 am, "Andrew Braithwaite" <[EMAIL PROTECTED]> wrote:
> Here's what I need to do...
>
> create table wibble(
> seq int(3) auto_increment primary key,
> x int(5),
> y int(5)
> );
>
> insert into wibble set x=5, y=10;
> insert into wibble set x=1, y=3;
> insert into wibble set x=17, y=22;
>
> mysql> select * from wibble;
> +-----+------+------+
> | seq | x | y |
> +-----+------+------+
> | 1 | 5 | 10 |
> | 2 | 1 | 3 |
> | 3 | 17 | 22 |
> +-----+------+------+
> 3 rows in set (0.09 sec)
>
> So I want to run a query to explode the x/y ranges by seq.
>
> The required output is:
>
> mysql> select some clever things from wibble where some clever stuff happens
> here;
> +-----+------+
> | seq | z |
> +-----+------+
> | 1 | 1 |
> | 1 | 2 |
> | 1 | 3 |
> | 1 | 4 |
> | 1 | 5 |
> | 2 | 1 |
> | 2 | 2 |
> | 2 | 3 |
> | 3 | 17 |
> | 3 | 18 |
> | 3 | 19 |
> | 3 | 20 |
> | 3 | 21 |
> | 3 | 22 |
> +-----+------+
> 14 rows in set (0.17 sec)
>
> Can anyone help me to achieve this result?
>
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]