Running 4.0.15a. The second select's FOUND_ROWS() returns the wrong number of rows.

To test yourself:

create database test1234;
\r test1234
create table test (id int, primary key (id));
insert into test values (1), (2), (3), (4), (5);
select SQL_CALC_FOUND_ROWS * from test where id > 3 limit 0, 1;
select FOUND_ROWS();
select SQL_CALC_FOUND_ROWS * from test where id > 3 AND 1=2 limit 0, 1;
select FOUND_ROWS();
select SQL_CALC_FOUND_ROWS * from test where id > 6 limit 0, 1;
select FOUND_ROWS();

My results:

mysql> create database test1234;
Query OK, 1 row affected (0.01 sec)

mysql> \r test1234
Connection id:    122
Current database: test1234

mysql> create table test (id int, primary key (id));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test values (1), (2), (3), (4), (5);
Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select SQL_CALC_FOUND_ROWS * from test where id > 3 limit 0, 1;
+----+
| id |
+----+
|  4 |
+----+
1 row in set (0.00 sec)

mysql> select FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
|            2 |
+--------------+
1 row in set (0.00 sec)

mysql> select SQL_CALC_FOUND_ROWS * from test where id > 3 AND 1=2 limit 0, 1;
Empty set (0.00 sec)

mysql> select FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
|            2 |
+--------------+
1 row in set (0.00 sec)

mysql> select SQL_CALC_FOUND_ROWS * from test where id > 6 limit 0, 1;
Empty set (0.00 sec)

mysql> select FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
|            0 |
+--------------+
1 row in set (0.00 sec)

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to