ps.result
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:22k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. drop table if exists t1,t2;
  2. create table t1
  3. (
  4. a int primary key,
  5. b char(10)
  6. );
  7. insert into t1 values (1,'one');
  8. insert into t1 values (2,'two');
  9. insert into t1 values (3,'three');
  10. insert into t1 values (4,'four');
  11. set @a=2;
  12. prepare stmt1 from 'select * from t1 where a <= ?';
  13. execute stmt1 using @a;
  14. a b
  15. 1 one
  16. 2 two
  17. set @a=3;
  18. execute stmt1 using @a;
  19. a b
  20. 1 one
  21. 2 two
  22. 3 three
  23. deallocate prepare no_such_statement;
  24. ERROR HY000: Unknown prepared statement handler (no_such_statement) given to DEALLOCATE PREPARE
  25. execute stmt1;
  26. ERROR HY000: Incorrect arguments to EXECUTE
  27. prepare stmt2 from 'prepare nested_stmt from "select 1"';
  28. 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 1
  29. prepare stmt2 from 'execute stmt1';
  30. 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 1
  31. prepare stmt2 from 'deallocate prepare z';
  32. 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 1
  33. prepare stmt3 from 'insert into t1 values (?,?)';
  34. set @arg1=5, @arg2='five';
  35. execute stmt3 using @arg1, @arg2;
  36. select * from t1 where a>3;
  37. a b
  38. 4 four
  39. 5 five
  40. prepare stmt4 from 'update t1 set a=? where b=?';
  41. set @arg1=55, @arg2='five';
  42. execute stmt4 using @arg1, @arg2;
  43. select * from t1 where a>3;
  44. a b
  45. 4 four
  46. 55 five
  47. prepare stmt4 from 'create table t2 (a int)';
  48. execute stmt4;
  49. prepare stmt4 from 'drop table t2';
  50. execute stmt4;
  51. execute stmt4;
  52. ERROR 42S02: Unknown table 't2'
  53. prepare stmt5 from 'select ? + a from t1';
  54. set @a=1;
  55. execute stmt5 using @a;
  56. ? + a
  57. 2
  58. 3
  59. 4
  60. 5
  61. 56
  62. execute stmt5 using @no_such_var;
  63. ? + a
  64. NULL
  65. NULL
  66. NULL
  67. NULL
  68. NULL
  69. set @nullvar=1;
  70. set @nullvar=NULL;
  71. execute stmt5 using @nullvar;
  72. ? + a
  73. NULL
  74. NULL
  75. NULL
  76. NULL
  77. NULL
  78. set @nullvar2=NULL;
  79. execute stmt5 using @nullvar2;
  80. ? + a
  81. NULL
  82. NULL
  83. NULL
  84. NULL
  85. NULL
  86. prepare stmt6 from 'select 1; select2';
  87. 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 1
  88. prepare stmt6 from 'insert into t1 values (5,"five"); select2';
  89. 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 1
  90. explain prepare stmt6 from 'insert into t1 values (5,"five"); select2';
  91. 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 1
  92. create table t2
  93. (
  94. a int
  95. );
  96. insert into t2 values (0);
  97. set @arg00=NULL ;
  98. prepare stmt1 from 'select 1 FROM t2 where a=?' ;
  99. execute stmt1 using @arg00 ;
  100. 1
  101. prepare stmt1 from @nosuchvar;
  102. 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 1
  103. set @ivar= 1234;
  104. prepare stmt1 from @ivar;
  105. 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 1
  106. set @fvar= 123.4567;
  107. prepare stmt1 from @fvar;
  108. 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 1
  109. drop table t1,t2;
  110. PREPARE stmt1 FROM "select _utf8 'A' collate utf8_bin = ?";
  111. set @var='A';
  112. EXECUTE stmt1 USING @var;
  113. _utf8 'A' collate utf8_bin = ?
  114. 1
  115. DEALLOCATE PREPARE stmt1;
  116. create table t1 (id int);
  117. prepare stmt1 from "select FOUND_ROWS()";
  118. select SQL_CALC_FOUND_ROWS * from t1;
  119. id
  120. execute stmt1;
  121. FOUND_ROWS()
  122. 0
  123. insert into t1 values (1);
  124. select SQL_CALC_FOUND_ROWS * from t1;
  125. id
  126. 1
  127. execute stmt1;
  128. FOUND_ROWS()
  129. 1
  130. execute stmt1;
  131. FOUND_ROWS()
  132. 1
  133. deallocate prepare stmt1;
  134. drop table t1;
  135. create table t1 
  136. (
  137. c1  tinyint, c2  smallint, c3  mediumint, c4  int,
  138. c5  integer, c6  bigint, c7  float, c8  double,
  139. c9  double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4),
  140. c13 date, c14 datetime, c15 timestamp(14), c16 time,
  141. c17 year, c18 bit, c19 bool, c20 char,
  142. c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext,
  143. c25 blob, c26 text, c27 mediumblob, c28 mediumtext,
  144. c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'),
  145. c32 set('monday', 'tuesday', 'wednesday')
  146. ) engine = MYISAM ;
  147. create table t2 like t1;
  148. 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 ' ;
  149. prepare stmt1 from @stmt ;
  150. execute stmt1 ;
  151. id select_type table type possible_keys key key_len ref rows Extra
  152. 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
  153. 6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
  154. 5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  155. 4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  156. 3 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  157. 2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  158. execute stmt1 ;
  159. id select_type table type possible_keys key key_len ref rows Extra
  160. 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
  161. 6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
  162. 5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  163. 4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  164. 3 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  165. 2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  166. 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;
  167. id select_type table type possible_keys key key_len ref rows Extra
  168. 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
  169. 6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
  170. 5 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  171. 4 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  172. 3 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  173. 2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
  174. deallocate prepare stmt1;
  175. drop tables t1,t2;
  176. set @arg00=1;
  177. prepare stmt1 from ' create table t1 (m int) as select 1 as m ' ;
  178. execute stmt1 ;
  179. select m from t1;
  180. m
  181. 1
  182. drop table t1;
  183. prepare stmt1 from ' create table t1 (m int) as select ? as m ' ;
  184. execute stmt1 using @arg00;
  185. select m from t1;
  186. m
  187. 1
  188. deallocate prepare stmt1;
  189. drop table t1;
  190. create table t1 (id int(10) unsigned NOT NULL default '0',
  191. name varchar(64) NOT NULL default '',
  192. PRIMARY KEY  (id), UNIQUE KEY `name` (`name`));
  193. insert into t1 values (1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5'),(6,'6'),(7,'7');
  194. prepare stmt1 from 'select name from t1 where id=? or id=?';
  195. set @id1=1,@id2=6;
  196. execute stmt1 using @id1, @id2;
  197. name
  198. 1
  199. 6
  200. select name from t1 where id=1 or id=6;
  201. name
  202. 1
  203. 6
  204. deallocate prepare stmt1;
  205. drop table t1;
  206. create table t1 ( a int primary key, b varchar(30)) engine = MYISAM ;
  207. prepare stmt1 from ' show table status from test like ''t1%'' ';
  208. execute stmt1;
  209. 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 Comment
  210. t1 MyISAM 9 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL
  211. show table status from test like 't1%' ;
  212. 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 Comment
  213. t1 MyISAM 9 Dynamic 0 0 0 4294967295 1024 0 NULL # # # latin1_swedish_ci NULL
  214. deallocate prepare stmt1 ;
  215. drop table t1;
  216. create table t1(a varchar(2), b varchar(3));
  217. prepare stmt1 from "select a, b from t1 where (not (a='aa' and b < 'zzz'))";
  218. execute stmt1;
  219. a b
  220. execute stmt1;
  221. a b
  222. deallocate prepare stmt1;
  223. drop table t1;
  224. prepare stmt1 from "select 1 into @var";
  225. execute stmt1;
  226. execute stmt1;
  227. prepare stmt1 from "create table t1 select 1 as i";
  228. execute stmt1;
  229. drop table t1;
  230. execute stmt1;
  231. prepare stmt1 from "insert into t1 select i from t1";
  232. execute stmt1;
  233. execute stmt1;
  234. prepare stmt1 from "select * from t1 into outfile 'f1.txt'";
  235. execute stmt1;
  236. deallocate prepare stmt1;
  237. drop table t1;
  238. prepare stmt1 from 'select 1';
  239. prepare STMT1 from 'select 2';
  240. execute sTmT1;
  241. 2
  242. 2
  243. deallocate prepare StMt1;
  244. deallocate prepare Stmt1;
  245. ERROR HY000: Unknown prepared statement handler (Stmt1) given to DEALLOCATE PREPARE
  246. set names utf8;
  247. prepare `眉` from 'select 1234';
  248. execute `眉` ;
  249. 1234
  250. 1234
  251. set names latin1;
  252. execute `黗;
  253. 1234
  254. 1234
  255. set names default;
  256. create table t1 (a varchar(10)) charset=utf8;
  257. insert into t1 (a) values ('yahoo');
  258. set character_set_connection=latin1;
  259. prepare stmt from 'select a from t1 where a like ?';
  260. set @var='google';
  261. execute stmt using @var;
  262. a
  263. execute stmt using @var;
  264. a
  265. deallocate prepare stmt;
  266. drop table t1;
  267. create table t1 (a bigint(20) not null primary key auto_increment);
  268. insert into t1 (a) values (null);
  269. select * from t1;
  270. a
  271. 1
  272. prepare stmt from "insert into t1 (a) values (?)";
  273. set @var=null;
  274. execute stmt using @var;
  275. select * from t1;
  276. a
  277. 1
  278. 2
  279. drop table t1;
  280. create table t1 (a timestamp not null);
  281. prepare stmt from "insert into t1 (a) values (?)";
  282. execute stmt using @var;
  283. select * from t1;
  284. deallocate prepare stmt;
  285. drop table t1;
  286. prepare stmt from "select 'abc' like convert('abc' using utf8)";
  287. execute stmt;
  288. 'abc' like convert('abc' using utf8)
  289. 1
  290. execute stmt;
  291. 'abc' like convert('abc' using utf8)
  292. 1
  293. deallocate prepare stmt;
  294. create table t1 ( a bigint );
  295. prepare stmt from 'select a from t1 where a between ? and ?';
  296. set @a=1;
  297. execute stmt using @a, @a;
  298. a
  299. execute stmt using @a, @a;
  300. a
  301. execute stmt using @a, @a;
  302. a
  303. drop table t1;
  304. deallocate prepare stmt;
  305. create table t1 (a int);
  306. prepare stmt from "select * from t1 where 1 > (1 in (SELECT * FROM t1))";
  307. execute stmt;
  308. a
  309. execute stmt;
  310. a
  311. execute stmt;
  312. a
  313. drop table t1;
  314. deallocate prepare stmt;
  315. create table t1 (a int, b int);
  316. insert into t1 (a, b) values (1,1), (1,2), (2,1), (2,2);
  317. prepare stmt from
  318. "explain select * from t1 where t1.a=2 and t1.a=t1.b and t1.b > 1 + ?";
  319. set @v=5;
  320. execute stmt using @v;
  321. id select_type table type possible_keys key key_len ref rows Extra
  322. - - - - - - - - NULL Impossible WHERE
  323. set @v=0;
  324. execute stmt using @v;
  325. id select_type table type possible_keys key key_len ref rows Extra
  326. - - - - - - - - 4 Using where
  327. set @v=5;
  328. execute stmt using @v;
  329. id select_type table type possible_keys key key_len ref rows Extra
  330. - - - - - - - - NULL Impossible WHERE
  331. drop table t1;
  332. deallocate prepare stmt;
  333. create table t1 (a int);
  334. insert into t1 (a) values (1), (2), (3), (4);
  335. set @precision=10000000000;
  336. select rand(), 
  337. cast(rand(10)*@precision as unsigned integer) from t1;
  338. rand() cast(rand(10)*@precision as unsigned integer)
  339. - 6570515219
  340. - 1282061302
  341. - 6698761160
  342. - 9647622201
  343. prepare stmt from
  344. "select rand(), 
  345.         cast(rand(10)*@precision as unsigned integer),
  346.         cast(rand(?)*@precision as unsigned integer) from t1";
  347. set @var=1;
  348. execute stmt using @var;
  349. rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)
  350. - 6570515219 -
  351. - 1282061302 -
  352. - 6698761160 -
  353. - 9647622201 -
  354. set @var=2;
  355. execute stmt using @var;
  356. rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)
  357. - 6570515219 6555866465
  358. - 1282061302 1223466192
  359. - 6698761160 6449731873
  360. - 9647622201 8578261098
  361. set @var=3;
  362. execute stmt using @var;
  363. rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)
  364. - 6570515219 9057697559
  365. - 1282061302 3730790581
  366. - 6698761160 1480860534
  367. - 9647622201 6211931236
  368. drop table t1;
  369. deallocate prepare stmt;
  370. create database mysqltest1;
  371. create table t1 (a int);
  372. create table mysqltest1.t1 (a int);
  373. select * from t1, mysqltest1.t1;
  374. a a
  375. prepare stmt from "select * from t1, mysqltest1.t1";
  376. execute stmt;
  377. a a
  378. execute stmt;
  379. a a
  380. execute stmt;
  381. a a
  382. drop table t1;
  383. drop table mysqltest1.t1;
  384. drop database mysqltest1;
  385. deallocate prepare stmt;
  386. select '1.1' as a, '1.2' as a UNION SELECT '2.1', '2.2';
  387. a a
  388. 1.1 1.2
  389. 2.1 2.2
  390. prepare stmt from
  391. "select '1.1' as a, '1.2' as a UNION SELECT '2.1', '2.2'";
  392. execute stmt;
  393. a a
  394. 1.1 1.2
  395. 2.1 2.2
  396. execute stmt;
  397. a a
  398. 1.1 1.2
  399. 2.1 2.2
  400. execute stmt;
  401. a a
  402. 1.1 1.2
  403. 2.1 2.2
  404. deallocate prepare stmt;
  405. create table t1 (a int);
  406. insert into t1 values (1),(2),(3);
  407. create table t2 select * from t1;
  408. prepare stmt FROM 'create table t2 select * from t1';
  409. drop table t2;
  410. execute stmt;
  411. drop table t2;
  412. execute stmt;
  413. execute stmt;
  414. ERROR 42S01: Table 't2' already exists
  415. drop table t2;
  416. execute stmt;
  417. drop table t1,t2;
  418. deallocate prepare stmt;
  419. create table t1 (a int);
  420. insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
  421. prepare stmt from "select sql_calc_found_rows * from t1 limit 2";
  422. execute stmt;
  423. a
  424. 1
  425. 2
  426. select found_rows();
  427. found_rows()
  428. 10
  429. execute stmt;
  430. a
  431. 1
  432. 2
  433. select found_rows();
  434. found_rows()
  435. 10
  436. execute stmt;
  437. a
  438. 1
  439. 2
  440. select found_rows();
  441. found_rows()
  442. 10
  443. deallocate prepare stmt;
  444. drop table t1;
  445. CREATE TABLE t1 (N int, M tinyint);
  446. INSERT INTO t1 VALUES (1,0),(1,0),(2,0),(2,0),(3,0);
  447. 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';
  448. EXECUTE stmt;
  449. DEALLOCATE PREPARE stmt;
  450. DROP TABLE t1;
  451. prepare stmt from "select ? is null, ? is not null, ?";
  452. select @no_such_var is null, @no_such_var is not null, @no_such_var;
  453. @no_such_var is null @no_such_var is not null @no_such_var
  454. 1 0 NULL
  455. execute stmt using @no_such_var, @no_such_var, @no_such_var;
  456. ? is null ? is not null ?
  457. 1 0 NULL
  458. set @var='abc';
  459. select @var is null, @var is not null, @var;
  460. @var is null @var is not null @var
  461. 0 1 abc
  462. execute stmt using @var, @var, @var;
  463. ? is null ? is not null ?
  464. 0 1 abc
  465. set @var=null;
  466. select @var is null, @var is not null, @var;
  467. @var is null @var is not null @var
  468. 1 0 NULL
  469. execute stmt using @var, @var, @var;
  470. ? is null ? is not null ?
  471. 1 0 NULL
  472. create table t1 (pnum char(3));
  473. create table t2 (pnum char(3));
  474. prepare stmt from "select pnum from t2 having pnum in (select 'p1' from t1)";
  475. execute stmt;
  476. pnum
  477. execute stmt;
  478. pnum
  479. execute stmt;
  480. pnum
  481. deallocate prepare stmt;
  482. drop table t1, t2;
  483. prepare stmt from "SELECT SQL_CALC_FOUND_ROWS 'foo' UNION SELECT 'bar' LIMIT 0";
  484. execute stmt;
  485. foo
  486. SELECT FOUND_ROWS();
  487. FOUND_ROWS()
  488. 2
  489. execute stmt;
  490. foo
  491. SELECT FOUND_ROWS();
  492. FOUND_ROWS()
  493. 2
  494. deallocate prepare stmt;
  495. drop table if exists t1;
  496. Warnings:
  497. Note 1051 Unknown table 't1'
  498. create table t1 (c1 int(11) not null, c2 int(11) not null,
  499. primary key  (c1,c2), key c2 (c2), key c1 (c1));
  500. insert into t1 values (200887, 860);
  501. insert into t1 values (200887, 200887);
  502. select * from t1 where (c1=200887 and c2=200887) or c2=860;
  503. c1 c2
  504. 200887 860
  505. 200887 200887
  506. prepare stmt from
  507. "select * from t1 where (c1=200887 and c2=200887) or c2=860";
  508. execute stmt;
  509. c1 c2
  510. 200887 860
  511. 200887 200887
  512. prepare stmt from
  513. "select * from t1 where (c1=200887 and c2=?) or c2=?";
  514. set @a=200887, @b=860;
  515. execute stmt using @a, @b;
  516. c1 c2
  517. 200887 860
  518. 200887 200887
  519. deallocate prepare stmt;
  520. drop table t1;
  521. create table t1 (
  522. id bigint(20) not null auto_increment,
  523. code varchar(20) character set utf8 collate utf8_bin not null default '',
  524. company_name varchar(250) character set utf8 collate utf8_bin default null,
  525. setup_mode tinyint(4) default null,
  526. start_date datetime default null,
  527. primary key  (id), unique key code (code)
  528. );
  529. create table t2 (
  530. id bigint(20) not null auto_increment,
  531. email varchar(250) character set utf8 collate utf8_bin default null,
  532. name varchar(250) character set utf8 collate utf8_bin default null,
  533. t1_id bigint(20) default null,
  534. password varchar(250) character set utf8 collate utf8_bin default null,
  535. primary_contact tinyint(4) not null default '0',
  536. email_opt_in tinyint(4) not null default '1',
  537. primary key  (id), unique key email (email), key t1_id (t1_id),
  538. constraint t2_fk1 foreign key (t1_id) references t1 (id)
  539. );
  540. insert into t1 values
  541. (1, 'demo', 'demo s', 0, current_date()),
  542. (2, 'code2', 'name 2', 0, current_date()),
  543. (3, 'code3', 'name 3', 0, current_date());
  544. insert into t2 values
  545. (2, 'email1', 'name1', 3, 'password1', 0, 0),
  546. (3, 'email2', 'name1', 1, 'password2', 1, 0),
  547. (5, 'email3', 'name3', 2, 'password3', 0, 0);
  548. prepare stmt from 'select t2.id from t2, t1 where (t1.id=? and t2.t1_id=t1.id)';
  549. set @a=1;
  550. execute stmt using @a;
  551. id
  552. 3
  553. select t2.id from t2, t1 where (t1.id=1 and t2.t1_id=t1.id);
  554. id
  555. 3
  556. deallocate prepare stmt;
  557. drop table t1, t2;
  558. create table t1 (id int);
  559. prepare stmt from "insert into t1 (id) select id from t1 union select id from t1";
  560. execute stmt;
  561. execute stmt;
  562. deallocate prepare stmt;
  563. drop table t1;
  564. create table t1 (
  565. id int(11) unsigned not null primary key auto_increment,
  566. partner_id varchar(35) not null,
  567. t1_status_id int(10) unsigned
  568. );
  569. insert into t1 values ("1", "partner1", "10"), ("2", "partner2", "10"),
  570. ("3", "partner3", "10"), ("4", "partner4", "10");
  571. create table t2 (
  572. id int(11) unsigned not null default '0',
  573. t1_line_id int(11) unsigned not null default '0',
  574. article_id varchar(20),
  575. sequence int(11) not null default '0',
  576. primary key  (id,t1_line_id)
  577. );
  578. insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
  579. ("2", "2", "sup", "2"), ("2", "3", "sup", "3"),
  580. ("2", "4", "imp", "4"), ("3", "1", "sup", "0"),
  581. ("4", "1", "sup", "0");
  582. create table t3 (
  583. id int(11) not null default '0',
  584. preceeding_id int(11) not null default '0',
  585. primary key  (id,preceeding_id)
  586. );
  587. create table t4 (
  588. user_id varchar(50) not null,
  589. article_id varchar(20) not null,
  590. primary key  (user_id,article_id)
  591. );
  592. insert into t4 values("nicke", "imp");
  593. prepare stmt from
  594. 'select distinct t1.partner_id
  595. from t1 left join t3 on t1.id = t3.id
  596.      left join t1 pp on pp.id = t3.preceeding_id
  597. where
  598.   exists (
  599.     select *
  600.     from t2 as pl_inner
  601.     where pl_inner.id = t1.id
  602.     and pl_inner.sequence <= (
  603.       select min(sequence) from t2 pl_seqnr
  604.       where pl_seqnr.id = t1.id
  605.     )
  606.     and exists (
  607.       select * from t4
  608.       where t4.article_id = pl_inner.article_id
  609.       and t4.user_id = ?
  610.     )
  611.   )
  612.   and t1.id = ?
  613. group by t1.id
  614. having count(pp.id) = 0';
  615. set @user_id = 'nicke';
  616. set @id = '2';
  617. execute stmt using @user_id, @id;
  618. partner_id
  619. execute stmt using @user_id, @id;
  620. partner_id
  621. deallocate prepare stmt;
  622. drop table t1, t2, t3, t4;
  623. prepare stmt from 'select ?=?';
  624. set @a='CHRISTINE           ';
  625. set @b='CHRISTINE';
  626. execute stmt using @a, @b;
  627. ?=?
  628. 1
  629. execute stmt using @a, @b;
  630. ?=?
  631. 1
  632. set @a=1, @b=2;
  633. execute stmt using @a, @b;
  634. ?=?
  635. 0
  636. set @a='CHRISTINE           ';
  637. set @b='CHRISTINE';
  638. execute stmt using @a, @b;
  639. ?=?
  640. 1
  641. deallocate prepare stmt;
  642. create table t1 (utext varchar(20) character set ucs2);
  643. insert into t1 values ("lily");
  644. insert into t1 values ("river");
  645. prepare stmt from 'select utext from t1 where utext like ?';
  646. set @param1='%%';
  647. execute stmt using @param1;
  648. utext
  649. lily
  650. river
  651. execute stmt using @param1;
  652. utext
  653. lily
  654. river
  655. select utext from t1 where utext like '%%';
  656. utext
  657. lily
  658. river
  659. drop table t1;
  660. deallocate prepare stmt;
  661. create table t1 (a int);
  662. prepare stmt from "select ??";
  663. 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 '?' at line 1
  664. prepare stmt from "select ?FROM t1";
  665. 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 t1' at line 1
  666. prepare stmt from "select FROM t1 WHERE?=1";
  667. 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 t1 WHERE?=1' at line 1
  668. prepare stmt from "update t1 set a=a+?WHERE 1";
  669. 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 '?WHERE 1' at line 1
  670. select ?;
  671. 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 '?' at line 1
  672. select ??;
  673. 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 '??' at line 1
  674. select ? from t1;
  675. 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 t1' at line 1
  676. drop table t1;
  677. prepare stmt from "select @@time_zone";
  678. execute stmt;
  679. @@time_zone
  680. SYSTEM
  681. set @@time_zone:='Japan';
  682. execute stmt;
  683. @@time_zone
  684. Japan
  685. prepare stmt from "select @@tx_isolation";
  686. execute stmt;
  687. @@tx_isolation
  688. REPEATABLE-READ
  689. set transaction isolation level read committed;
  690. execute stmt;
  691. @@tx_isolation
  692. READ-COMMITTED
  693. set transaction isolation level serializable;
  694. execute stmt;
  695. @@tx_isolation
  696. SERIALIZABLE
  697. set @@tx_isolation=default;
  698. execute stmt;
  699. @@tx_isolation
  700. REPEATABLE-READ
  701. deallocate prepare stmt;
  702. prepare stmt from "create temporary table t1 (letter enum('','a','b','c')
  703. not null)";
  704. execute stmt;
  705. drop table t1;
  706. execute stmt;
  707. drop table t1;
  708. execute stmt;
  709. drop table t1;
  710. set names latin1;
  711. prepare stmt from "create table t1 (a enum('test') default 'test')
  712.  character set utf8";
  713. execute stmt;
  714. drop table t1;
  715. execute stmt;
  716. drop table t1;
  717. execute stmt;
  718. drop table t1;
  719. set names default;
  720. deallocate prepare stmt;