Bug #17433 substring select problem
| Submitted: | 15 Feb 2006 19:27 | Modified: | 16 Feb 2006 14:54 |
|---|---|---|---|
| Reporter: | Steve Morin | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 4.1.11 | OS: | Linux (Debian) |
| Assigned to: | CPU Architecture: | Any |
[16 Feb 2006 9:45]
Valeriy Kravchuk
Thank you for a problem report. Sorry, but I was not able to repeat it with 4.1.19-BK:
mysql> create table test ( code varchar(255), id decimal(18), primary key (id)
);
inQuery OK, 0 rows affected (0.01 sec)
mysql> insert into test values('asdef',1);
Query OK, 1 row affected (0.01 sec)
mysql> insert into test values('asdef',2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test values('asdeg',3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test values('asdeq',4);
Query OK, 1 row affected (0.00 sec)
mysql> select substring(code,-4,4) from test;
+----------------------+
| substring(code,-4,4) |
+----------------------+
| sdef |
| sdef |
| sdeg |
| sdeq |
+----------------------+
4 rows in set (0.00 sec)
mysql> select * from (select substring(code,-4,4) from test) as tmp;
+----------------------+
| substring(code,-4,4) |
+----------------------+
| sdef |
| sdef |
| sdeg |
| sdeq |
+----------------------+
4 rows in set (0.00 sec)
mysql> select * from (select substring(code,2,4) from test) as tmp;
+---------------------+
| substring(code,2,4) |
+---------------------+
| sdef |
| sdef |
| sdeg |
| sdeq |
+---------------------+
4 rows in set (0.00 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 4.1.19 |
+-----------+
1 row in set (0.00 sec)
So, please, try to use newer version, 4.1.18.
[16 Feb 2006 14:54]
Steve Morin
Looks like has been fixed and is commented in the following bug #10269: SUBSTRING() with negative index returns empty from within a subquery
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.052 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: Substring doesn't work as expected, when being used with a negative starting position. Specifically doesn't work as a nested query, and with group by. How to repeat: create table test ( code varchar(255), id decimal(18), primary key (id) ); insert into test values('asdef',1); insert into test values('asdef',2); insert into test values('asdeg',3); insert into test values('asdeq',4); //baseline query which works select substring(code,-4,4) from test; +----------------------+ | substring(code,-4,4) | +----------------------+ | sdef | | sdef | | sdeg | | sdeq | +----------------------+ 4 rows in set (0.00 sec) //provides empty result set which is wrong select * from (select substring(code,-4,4) from test) as tmp; +----------------------+ | substring(code,-4,4) | +----------------------+ | | | | | | | | +----------------------+ 4 rows in set (0.00 sec) //baseline is identical results to first baseline select substring(code,2,4) from test; +---------------------+ | substring(code,2,4) | +---------------------+ | sdef | | sdef | | sdeg | | sdeq | +---------------------+ 4 rows in set (0.00 sec) //workes in this instance select * from (select substring(code,2,4) from test) as tmp; +---------------------+ | substring(code,2,4) | +---------------------+ | sdef | | sdef | | sdeg | | sdeq | +---------------------+ 4 rows in set (0.00 sec)