GIF89a; Mini Shell

Mini Shell

Direktori : /usr/share/mysql-test/r/
Upload File :
Current File : //usr/share/mysql-test/r/limit.result

drop table if exists t1;
create table t1 (a int not null default 0 primary key, b int not null default 0);
insert into t1 () values ();
insert into t1 values (1,1),(2,1),(3,1);
update t1 set a=4 where b=1 limit 1;
select * from t1;
a	b
0	0
4	1
2	1
3	1
update t1 set b=2 where b=1 limit 2;
select * from t1;
a	b
0	0
4	2
2	2
3	1
update t1 set b=4 where b=1;
select * from t1;
a	b
0	0
4	2
2	2
3	4
delete from t1 where b=2 limit 1;
select * from t1;
a	b
0	0
2	2
3	4
delete from t1 limit 1;
select * from t1;
a	b
2	2
3	4
drop table t1;
create table t1 (i int);
insert into t1 (i) values(1),(1),(1);
delete from t1 limit 1;
update t1 set i=2 limit 1;
delete from t1 limit 0;
update t1 set i=3 limit 0;
select * from t1;
i
2
1
drop table t1;
select 0 limit 0;
0
CREATE TABLE t1(id int auto_increment primary key, id2 int, index(id2));
INSERT INTO t1 (id2) values (0),(0),(0);
DELETE FROM t1 WHERE id=1;
INSERT INTO t1 SET id2=0;
SELECT * FROM t1;
id	id2
4	0
2	0
3	0
DELETE FROM t1 WHERE id2 = 0 ORDER BY id LIMIT 1;
SELECT * FROM t1;
id	id2
4	0
3	0
DELETE FROM t1 WHERE id2 = 0 ORDER BY id desc LIMIT 1;
SELECT * FROM t1;
id	id2
3	0
DROP TABLE t1;
create table t1 (a integer);
insert into t1 values (1);
select 1 as a from t1 union all select 1 from dual limit 1;
a
1
(select 1 as a from t1) union all (select 1 from dual) limit 1;
a
1
drop table t1;
create table t1 (a int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7);
explain select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	7	Using where
select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
c
7
explain select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	7	Using where
select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3;
c
28
drop table t1;
prepare s from "select 1 limit ?";
set @a='qwe';
execute s using @a;
1
set @a=-1;
execute s using @a;
ERROR HY000: Incorrect arguments to EXECUTE
prepare s from "select 1 limit 1, ?";
execute s using @a;
ERROR HY000: Incorrect arguments to EXECUTE
prepare s from "select 1 limit ?, ?";
execute s using @a, @a;
ERROR HY000: Incorrect arguments to EXECUTE
set @a=14632475938453979136;
execute s using @a, @a;
1
set @a=-14632475938453979136;
execute s using @a, @a;
ERROR HY000: Incorrect arguments to EXECUTE
End of 5.0 tests
select 1 as a limit 4294967296,10;
a
End of 5.1 tests
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT,
k INT,
payload CHAR(100),
PRIMARY KEY(id),
KEY idx_k (k));
INSERT INTO t1(k) VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
ANALYZE TABLE t1;
Table	Op	Msg_type	Msg_text
test.t1	analyze	status	OK
EXPLAIN SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
GROUP BY id
ORDER BY id LIMIT 0,1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	range	PRIMARY,idx_k	idx_k	5	NULL	3	Using index condition; Using filesort
EXPLAIN SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
GROUP BY id
LIMIT 0,1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	range	PRIMARY,idx_k	idx_k	5	NULL	3	Using index condition; Using filesort
EXPLAIN SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
ORDER BY id LIMIT 0,1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	range	idx_k	idx_k	5	NULL	3	Using index condition; Using filesort
EXPLAIN SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
GROUP BY id
ORDER BY id;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	range	PRIMARY,idx_k	idx_k	5	NULL	3	Using index condition; Using filesort
SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
GROUP BY id
ORDER BY id LIMIT 0,1;
id	k	payload
2	2	NULL
SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
GROUP BY id
LIMIT 0,1;
id	k	payload
2	2	NULL
SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
ORDER BY id LIMIT 0,1;
id	k	payload
2	2	NULL
SELECT * FROM t1 FORCE INDEX (idx_k)
WHERE k BETWEEN 2 AND 5
GROUP BY id
ORDER BY id;
id	k	payload
2	2	NULL
3	3	NULL
4	4	NULL
5	5	NULL
DROP TABLE t1;

./BlackJoker Mini Shell 1.0