📄 ps.result
字号:
drop table if exists t1,t2;drop database if exists client_test_db;create table t1(a int primary key,b char(10));insert into t1 values (1,'one');insert into t1 values (2,'two');insert into t1 values (3,'three');insert into t1 values (4,'four');set @a=2;prepare stmt1 from 'select * from t1 where a <= ?';execute stmt1 using @a;a b1 one2 twoset @a=3;execute stmt1 using @a;a b1 one2 two3 threedeallocate prepare no_such_statement;ERROR HY000: Unknown prepared statement handler (no_such_statement) given to DEALLOCATE PREPAREexecute stmt1;ERROR HY000: Incorrect arguments to EXECUTEprepare stmt2 from 'prepare nested_stmt from "select 1"';ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"select 1"' at line 1prepare stmt2 from 'execute stmt1';ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'stmt1' at line 1prepare stmt2 from 'deallocate prepare z';ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'z' at line 1prepare stmt3 from 'insert into t1 values (?,?)';set @arg1=5, @arg2='five';execute stmt3 using @arg1, @arg2;select * from t1 where a>3;a b4 four5 fiveprepare stmt4 from 'update t1 set a=? where b=?';set @arg1=55, @arg2='five';execute stmt4 using @arg1, @arg2;select * from t1 where a>3;a b4 four55 fiveprepare stmt4 from 'create table t2 (a int)';execute stmt4;prepare stmt4 from 'drop table t2';execute stmt4;execute stmt4;ERROR 42S02: Unknown table 't2'prepare stmt5 from 'select ? + a from t1';set @a=1;execute stmt5 using @a;? + a234556execute stmt5 using @no_such_var;? + aNULLNULLNULLNULLNULLset @nullvar=1;set @nullvar=NULL;execute stmt5 using @nullvar;? + aNULLNULLNULLNULLNULLset @nullvar2=NULL;execute stmt5 using @nullvar2;? + aNULLNULLNULLNULLNULLprepare stmt6 from 'select 1; select2';ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; select2' at line 1prepare stmt6 from 'insert into t1 values (5,"five"); select2';ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; select2' at line 1explain prepare stmt6 from 'insert into t1 values (5,"five"); select2';ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from 'insert into t1 values (5,"five"); select2'' at line 1create table t2(a int);insert into t2 values (0);set @arg00=NULL ;prepare stmt1 from 'select 1 FROM t2 where a=?' ;execute stmt1 using @arg00 ;1prepare stmt1 from @nosuchvar;ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1set @ivar= 1234;prepare stmt1 from @ivar;ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1234' at line 1set @fvar= 123.4567;prepare stmt1 from @fvar;ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123.4567' at line 1drop table t1,t2;PREPARE stmt1 FROM "select _utf8 'A' collate utf8_bin = ?";set @var='A';EXECUTE stmt1 USING @var;_utf8 'A' collate utf8_bin = ?1DEALLOCATE PREPARE stmt1;create table t1 (id int);prepare stmt1 from "select FOUND_ROWS()";select SQL_CALC_FOUND_ROWS * from t1;idexecute stmt1;FOUND_ROWS()0insert into t1 values (1);select SQL_CALC_FOUND_ROWS * from t1;id1execute stmt1;FOUND_ROWS()1execute stmt1;FOUND_ROWS()1deallocate prepare stmt1;drop table t1;create table t1 (c1 tinyint, c2 smallint, c3 mediumint, c4 int,c5 integer, c6 bigint, c7 float, c8 double,c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),c13 date, c14 datetime, c15 timestamp, c16 time,c17 year, c18 bit, c19 bool, c20 char,c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,c25 blob, c26 text, c27 mediumblob, c28 mediumtext,c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),c32 set('monday', 'tuesday', 'wednesday')) engine = MYISAM ;create table t2 like t1;set @stmt= ' explain SELECT (SELECT SUM(c1 + c12 + 0.0) FROM t2 where (t1.c2 - 0e-3) = t2.c2 GROUP BY t1.c15 LIMIT 1) as scalar_s, exists (select 1.0e+0 from t2 where t2.c3 * 9.0000000000 = t1.c4) as exists_s, c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s FROM t1, (select c25 x, c32 y from t2) tt WHERE x * 1 = c25 ' ;prepare stmt1 from @stmt ;execute stmt1 ;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tablesexecute stmt1 ;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tablesexplain SELECT (SELECT SUM(c1 + c12 + 0.0) FROM t2 where (t1.c2 - 0e-3) = t2.c2 GROUP BY t1.c15 LIMIT 1) as scalar_s, exists (select 1.0e+0 from t2 where t2.c3 * 9.0000000000 = t1.c4) as exists_s, c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s FROM t1, (select c25 x, c32 y from t2) tt WHERE x * 1 = c25;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tablesdeallocate prepare stmt1;drop tables t1,t2;set @arg00=1;prepare stmt1 from ' create table t1 (m int) as select 1 as m ' ;execute stmt1 ;select m from t1;m1drop table t1;prepare stmt1 from ' create table t1 (m int) as select ? as m ' ;execute stmt1 using @arg00;select m from t1;m1deallocate prepare stmt1;drop table t1;create table t1 (id int(10) unsigned NOT NULL default '0',name varchar(64) NOT NULL default '',PRIMARY KEY (id), UNIQUE KEY `name` (`name`));insert into t1 values (1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5'),(6,'6'),(7,'7');prepare stmt1 from 'select name from t1 where id=? or id=?';set @id1=1,@id2=6;execute stmt1 using @id1, @id2;name16select name from t1 where id=1 or id=6;name16deallocate prepare stmt1;drop table t1;create table t1 ( a int primary key, b varchar(30)) engine = MYISAM ;prepare stmt1 from ' show table status from test like ''t1%'' ';execute stmt1;Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Commentt1 MyISAM 10 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL show table status from test like 't1%' ;Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Commentt1 MyISAM 10 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL deallocate prepare stmt1 ;drop table t1;create table t1(a varchar(2), b varchar(3));prepare stmt1 from "select a, b from t1 where (not (a='aa' and b < 'zzz'))";execute stmt1;a bexecute stmt1;a bdeallocate prepare stmt1;drop table t1;prepare stmt1 from "select 1 into @var";execute stmt1;execute stmt1;prepare stmt1 from "create table t1 select 1 as i";execute stmt1;drop table t1;execute stmt1;prepare stmt1 from "insert into t1 select i from t1";execute stmt1;execute stmt1;prepare stmt1 from "select * from t1 into outfile 'f1.txt'";execute stmt1;deallocate prepare stmt1;drop table t1;prepare stmt1 from 'select 1';prepare STMT1 from 'select 2';execute sTmT1;22deallocate prepare StMt1;deallocate prepare Stmt1;ERROR HY000: Unknown prepared statement handler (Stmt1) given to DEALLOCATE PREPAREset names utf8;prepare `眉` from 'select 1234';execute `眉` ;12341234set names latin1;execute `黗;12341234set names default;create table t1 (a varchar(10)) charset=utf8;insert into t1 (a) values ('yahoo');set character_set_connection=latin1;prepare stmt from 'select a from t1 where a like ?';set @var='google';execute stmt using @var;aexecute stmt using @var;adeallocate prepare stmt;drop table t1;create table t1 (a bigint(20) not null primary key auto_increment);insert into t1 (a) values (null);select * from t1;a1prepare stmt from "insert into t1 (a) values (?)";set @var=null;execute stmt using @var;select * from t1;a12drop table t1;create table t1 (a timestamp not null);prepare stmt from "insert into t1 (a) values (?)";execute stmt using @var;select * from t1;deallocate prepare stmt;drop table t1;prepare stmt from "select 'abc' like convert('abc' using utf8)";execute stmt;'abc' like convert('abc' using utf8)1execute stmt;'abc' like convert('abc' using utf8)1deallocate prepare stmt;create table t1 ( a bigint );prepare stmt from 'select a from t1 where a between ? and ?';set @a=1;execute stmt using @a, @a;aexecute stmt using @a, @a;aexecute stmt using @a, @a;adrop table t1;deallocate prepare stmt;create table t1 (a int);prepare stmt from "select * from t1 where 1 > (1 in (SELECT * FROM t1))";execute stmt;aexecute stmt;aexecute stmt;adrop table t1;deallocate prepare stmt;create table t1 (a int, b int);insert into t1 (a, b) values (1,1), (1,2), (2,1), (2,2);prepare stmt from"explain select * from t1 where t1.a=2 and t1.a=t1.b and t1.b > 1 + ?";set @v=5;execute stmt using @v;id select_type table type possible_keys key key_len ref rows Extra- - - - - - - - NULL Impossible WHEREset @v=0;execute stmt using @v;id select_type table type possible_keys key key_len ref rows Extra- - - - - - - - 4 Using whereset @v=5;execute stmt using @v;id select_type table type possible_keys key key_len ref rows Extra- - - - - - - - NULL Impossible WHEREdrop table t1;deallocate prepare stmt;create table t1 (a int);insert into t1 (a) values (1), (2), (3), (4);set @precision=10000000000;select rand(), cast(rand(10)*@precision as unsigned integer) from t1;rand() cast(rand(10)*@precision as unsigned integer)- 6570515220- 1282061302- 6698761160- 9647622201prepare stmt from"select rand(), cast(rand(10)*@precision as unsigned integer), cast(rand(?)*@precision as unsigned integer) from t1";set @var=1;execute stmt using @var;rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)- 6570515220 -- 1282061302 -- 6698761160 -- 9647622201 -set @var=2;execute stmt using @var;rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)- 6570515220 6555866465- 1282061302 1223466193- 6698761160 6449731874- 9647622201 8578261098set @var=3;execute stmt using @var;rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)- 6570515220 9057697560- 1282061302 3730790581- 6698761160 1480860535- 9647622201 6211931236drop table t1;deallocate prepare stmt;create database mysqltest1;create table t1 (a int);create table mysqltest1.t1 (a int);select * from t1, mysqltest1.t1;a aprepare stmt from "select * from t1, mysqltest1.t1";execute stmt;a aexecute stmt;a aexecute stmt;a adrop table t1;drop table mysqltest1.t1;drop database mysqltest1;deallocate prepare stmt;select '1.1' as a, '1.2' as a UNION SELECT '2.1', '2.2';a a1.1 1.22.1 2.2prepare stmt from"select '1.1' as a, '1.2' as a UNION SELECT '2.1', '2.2'";execute stmt;a a1.1 1.22.1 2.2execute stmt;a a1.1 1.22.1 2.2execute stmt;a a1.1 1.22.1 2.2deallocate prepare stmt;create table t1 (a int);insert into t1 values (1),(2),(3);create table t2 select * from t1;prepare stmt FROM 'create table t2 select * from t1';drop table t2;execute stmt;drop table t2;execute stmt;execute stmt;ERROR 42S01: Table 't2' already existsdrop table t2;execute stmt;drop table t1,t2;deallocate prepare stmt;create table t1 (a int);insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);prepare stmt from "select sql_calc_found_rows * from t1 limit 2";execute stmt;a12select found_rows();found_rows()10execute stmt;a12select found_rows();found_rows()10execute stmt;a12select found_rows();found_rows()10deallocate prepare stmt;drop table t1;CREATE TABLE t1 (N int, M tinyint);INSERT INTO t1 VALUES (1,0),(1,0),(2,0),(2,0),(3,0);PREPARE stmt FROM 'UPDATE t1 AS P1 INNER JOIN (SELECT N FROM t1 GROUP BY N HAVING COUNT(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2';EXECUTE stmt;DEALLOCATE PREPARE stmt;DROP TABLE t1;prepare stmt from "select ? is null, ? is not null, ?";select @no_such_var is null, @no_such_var is not null, @no_such_var;@no_such_var is null @no_such_var is not null @no_such_var1 0 NULLexecute stmt using @no_such_var, @no_such_var, @no_such_var;? is null ? is not null ?1 0 NULLset @var='abc';select @var is null, @var is not null, @var;@var is null @var is not null @var0 1 abcexecute stmt using @var, @var, @var;? is null ? is not null ?0 1 abc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -