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

MySQL数据库

开发平台:

Visual C++

  1. drop table if exists t1, t2;
  2. CREATE TABLE t1 (
  3. event_date date DEFAULT '0000-00-00' NOT NULL,
  4. type int(11) DEFAULT '0' NOT NULL,
  5. event_id int(11) DEFAULT '0' NOT NULL,
  6. PRIMARY KEY (event_date,type,event_id)
  7. );
  8. INSERT INTO t1 VALUES ('1999-07-10',100100,24), ('1999-07-11',100100,25),
  9. ('1999-07-13',100600,0), ('1999-07-13',100600,4), ('1999-07-13',100600,26),
  10. ('1999-07-14',100600,10), ('1999-07-15',100600,16), ('1999-07-15',100800,45),
  11. ('1999-07-15',101000,47), ('1999-07-16',100800,46), ('1999-07-20',100600,5),
  12. ('1999-07-20',100600,27), ('1999-07-21',100600,11), ('1999-07-22',100600,17),
  13. ('1999-07-23',100100,39), ('1999-07-24',100100,39), ('1999-07-24',100500,40),
  14. ('1999-07-25',100100,39), ('1999-07-27',100600,1), ('1999-07-27',100600,6),
  15. ('1999-07-27',100600,28), ('1999-07-28',100600,12), ('1999-07-29',100500,41),
  16. ('1999-07-29',100600,18), ('1999-07-30',100500,41), ('1999-07-31',100500,41),
  17. ('1999-08-01',100700,34), ('1999-08-03',100600,7), ('1999-08-03',100600,29),
  18. ('1999-08-04',100600,13), ('1999-08-05',100500,42), ('1999-08-05',100600,19),
  19. ('1999-08-06',100500,42), ('1999-08-07',100500,42), ('1999-08-08',100500,42),
  20. ('1999-08-10',100600,2), ('1999-08-10',100600,9), ('1999-08-10',100600,30),
  21. ('1999-08-11',100600,14), ('1999-08-12',100600,20), ('1999-08-17',100500,8),
  22. ('1999-08-17',100600,31), ('1999-08-18',100600,15), ('1999-08-19',100600,22),
  23. ('1999-08-24',100600,3), ('1999-08-24',100600,32), ('1999-08-27',100500,43),
  24. ('1999-08-31',100600,33), ('1999-09-17',100100,37), ('1999-09-18',100100,37),
  25. ('1999-09-19',100100,37), ('2000-12-18',100700,38);
  26. select event_date,type,event_id from t1 WHERE event_date >= "1999-07-01" AND event_date < "1999-07-15" AND (type=100600 OR type=100100) ORDER BY event_date;
  27. event_date type event_id
  28. 1999-07-10 100100 24
  29. 1999-07-11 100100 25
  30. 1999-07-13 100600 0
  31. 1999-07-13 100600 4
  32. 1999-07-13 100600 26
  33. 1999-07-14 100600 10
  34. explain select event_date,type,event_id from t1 WHERE type = 100601 and event_date >= "1999-07-01" AND event_date < "1999-07-15" AND (type=100600 OR type=100100) ORDER BY event_date;
  35. id select_type table type possible_keys key key_len ref rows Extra
  36. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
  37. select event_date,type,event_id from t1 WHERE event_date >= "1999-07-01" AND event_date <= "1999-07-15" AND (type=100600 OR type=100100) or event_date >= "1999-07-01" AND event_date <= "1999-07-15" AND type=100099;
  38. event_date type event_id
  39. 1999-07-10 100100 24
  40. 1999-07-11 100100 25
  41. 1999-07-13 100600 0
  42. 1999-07-13 100600 4
  43. 1999-07-13 100600 26
  44. 1999-07-14 100600 10
  45. 1999-07-15 100600 16
  46. drop table t1;
  47. CREATE TABLE t1 (
  48. PAPER_ID smallint(6) DEFAULT '0' NOT NULL,
  49. YEAR smallint(6) DEFAULT '0' NOT NULL,
  50. ISSUE smallint(6) DEFAULT '0' NOT NULL,
  51. CLOSED tinyint(4) DEFAULT '0' NOT NULL,
  52. ISS_DATE date DEFAULT '0000-00-00' NOT NULL,
  53. PRIMARY KEY (PAPER_ID,YEAR,ISSUE)
  54. );
  55. INSERT INTO t1 VALUES (3,1999,34,0,'1999-07-12'), (1,1999,111,0,'1999-03-23'),
  56. (1,1999,222,0,'1999-03-23'), (3,1999,33,0,'1999-07-12'),
  57. (3,1999,32,0,'1999-07-12'), (3,1999,31,0,'1999-07-12'),
  58. (3,1999,30,0,'1999-07-12'), (3,1999,29,0,'1999-07-12'),
  59. (3,1999,28,0,'1999-07-12'), (1,1999,40,1,'1999-05-01'),
  60. (1,1999,41,1,'1999-05-01'), (1,1999,42,1,'1999-05-01'),
  61. (1,1999,46,1,'1999-05-01'), (1,1999,47,1,'1999-05-01'),
  62. (1,1999,48,1,'1999-05-01'), (1,1999,49,1,'1999-05-01'),
  63. (1,1999,50,0,'1999-05-01'), (1,1999,51,0,'1999-05-01'),
  64. (1,1999,200,0,'1999-06-28'), (1,1999,52,0,'1999-06-28'),
  65. (1,1999,53,0,'1999-06-28'), (1,1999,54,0,'1999-06-28'),
  66. (1,1999,55,0,'1999-06-28'), (1,1999,56,0,'1999-07-01'),
  67. (1,1999,57,0,'1999-07-01'), (1,1999,58,0,'1999-07-01'),
  68. (1,1999,59,0,'1999-07-01'), (1,1999,60,0,'1999-07-01'),
  69. (3,1999,35,0,'1999-07-12');
  70. select YEAR,ISSUE from t1 where PAPER_ID=3 and (YEAR>1999 or (YEAR=1999 and ISSUE>28))  order by YEAR,ISSUE;
  71. YEAR ISSUE
  72. 1999 29
  73. 1999 30
  74. 1999 31
  75. 1999 32
  76. 1999 33
  77. 1999 34
  78. 1999 35
  79. check table t1;
  80. Table Op Msg_type Msg_text
  81. test.t1 check status OK
  82. repair table t1;
  83. Table Op Msg_type Msg_text
  84. test.t1 repair status OK
  85. drop table t1;
  86. CREATE TABLE t1 (
  87. id int(11) NOT NULL auto_increment,
  88. parent_id int(11) DEFAULT '0' NOT NULL,
  89. level tinyint(4) DEFAULT '0' NOT NULL,
  90. PRIMARY KEY (id),
  91. KEY parent_id (parent_id),
  92. KEY level (level)
  93. );
  94. INSERT INTO t1 VALUES (1,0,0), (3,1,1), (4,1,1), (8,2,2), (9,2,2), (17,3,2),
  95. (22,4,2), (24,4,2), (28,5,2), (29,5,2), (30,5,2), (31,6,2), (32,6,2), (33,6,2),
  96. (203,7,2), (202,7,2), (20,3,2), (157,0,0), (193,5,2), (40,7,2), (2,1,1),
  97. (15,2,2), (6,1,1), (34,6,2), (35,6,2), (16,3,2), (7,1,1), (36,7,2), (18,3,2),
  98. (26,5,2), (27,5,2), (183,4,2), (38,7,2), (25,5,2), (37,7,2), (21,4,2),
  99. (19,3,2), (5,1,1), (179,5,2);
  100. SELECT * FROM t1 WHERE level = 1 AND parent_id = 1;
  101. id parent_id level
  102. 3 1 1
  103. 4 1 1
  104. 2 1 1
  105. 6 1 1
  106. 7 1 1
  107. 5 1 1
  108. SELECT * FROM t1 WHERE level = 1 AND parent_id = 1 order by id;
  109. id parent_id level
  110. 2 1 1
  111. 3 1 1
  112. 4 1 1
  113. 5 1 1
  114. 6 1 1
  115. 7 1 1
  116. drop table t1;
  117. create table t1(
  118. Satellite varchar(25) not null,
  119. SensorMode varchar(25) not null,
  120. FullImageCornersUpperLeftLongitude double not null,
  121. FullImageCornersUpperRightLongitude double not null,
  122. FullImageCornersUpperRightLatitude double not null,
  123. FullImageCornersLowerRightLatitude double not null,
  124. index two (Satellite, SensorMode, FullImageCornersUpperLeftLongitude, FullImageCornersUpperRightLongitude, FullImageCornersUpperRightLatitude, FullImageCornersLowerRightLatitude));
  125. insert into t1 values("OV-3","PAN1",91,-92,40,50);
  126. insert into t1 values("OV-4","PAN1",91,-92,40,50);
  127. select * from t1 where t1.Satellite = "OV-3" and t1.SensorMode = "PAN1" and t1.FullImageCornersUpperLeftLongitude > -90.000000 and t1.FullImageCornersUpperRightLongitude < -82.000000;
  128. Satellite SensorMode FullImageCornersUpperLeftLongitude FullImageCornersUpperRightLongitude FullImageCornersUpperRightLatitude FullImageCornersLowerRightLatitude
  129. OV-3 PAN1 91 -92 40 50
  130. drop table t1;
  131. create table t1 ( aString char(100) not null default "", key aString (aString(10)) );
  132. insert t1 (aString) values ( "believe in myself" ), ( "believe" ), ("baaa" ), ( "believe in love");
  133. select * from t1 where aString < "believe in myself" order by aString;
  134. aString
  135. baaa
  136. believe
  137. believe in love
  138. select * from t1 where aString > "believe in love" order by aString;
  139. aString
  140. believe in myself
  141. alter table t1 drop key aString;
  142. select * from t1 where aString < "believe in myself" order by aString;
  143. aString
  144. baaa
  145. believe
  146. believe in love
  147. select * from t1 where aString > "believe in love" order by aString;
  148. aString
  149. believe in myself
  150. drop table t1;
  151. CREATE TABLE t1 (
  152. t1ID int(10) unsigned NOT NULL auto_increment,
  153. art binary(1) NOT NULL default '',
  154. KNR char(5) NOT NULL default '',
  155. RECHNR char(6) NOT NULL default '',
  156. POSNR char(2) NOT NULL default '',
  157. ARTNR char(10) NOT NULL default '',
  158. TEX char(70) NOT NULL default '',
  159. PRIMARY KEY  (t1ID),
  160. KEY IdxArt (art),
  161. KEY IdxKnr (KNR),
  162. KEY IdxArtnr (ARTNR)
  163. ) ENGINE=MyISAM;
  164. INSERT INTO t1 (art) VALUES ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  165. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  166. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  167. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  168. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  169. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  170. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  171. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  172. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  173. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  174. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  175. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  176. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  177. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  178. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  179. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  180. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  181. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  182. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  183. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  184. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  185. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  186. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  187. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  188. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  189. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  190. ('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),('j'),('J'),
  191. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  192. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  193. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  194. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  195. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  196. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  197. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  198. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  199. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  200. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),
  201. ('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j'),('j');
  202. select count(*) from t1 where upper(art) = 'J';
  203. count(*)
  204. 213
  205. select count(*) from t1 where art = 'J' or art = 'j';
  206. count(*)
  207. 602
  208. select count(*) from t1 where art = 'j' or art = 'J';
  209. count(*)
  210. 602
  211. select count(*) from t1 where art = 'j';
  212. count(*)
  213. 389
  214. select count(*) from t1 where art = 'J';
  215. count(*)
  216. 213
  217. drop table t1;
  218. create table t1 (x int, y int, index(x), index(y));
  219. insert into t1 (x) values (1),(2),(3),(4),(5),(6),(7),(8),(9);
  220. update t1 set y=x;
  221. explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 7 and t1.y+0;
  222. id select_type table type possible_keys key key_len ref rows Extra
  223. 1 SIMPLE t1 ref y y 5 const 1 Using where
  224. 1 SIMPLE t2 range x x 5 NULL 4 Range checked for each record (index map: 0x1)
  225. explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 7 and t2.x <= t1.y+0;
  226. id select_type table type possible_keys key key_len ref rows Extra
  227. 1 SIMPLE t1 ref y y 5 const 1 Using where
  228. 1 SIMPLE t2 range x x 5 NULL 4 Using where
  229. explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
  230. id select_type table type possible_keys key key_len ref rows Extra
  231. 1 SIMPLE t1 ref y y 5 const 1 Using where
  232. 1 SIMPLE t2 ALL x NULL NULL NULL 9 Range checked for each record (index map: 0x1)
  233. explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
  234. id select_type table type possible_keys key key_len ref rows Extra
  235. 1 SIMPLE t1 ref y y 5 const 1 Using where
  236. 1 SIMPLE t2 ALL x NULL NULL NULL 9 Range checked for each record (index map: 0x1)
  237. explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
  238. id select_type table type possible_keys key key_len ref rows Extra
  239. 1 SIMPLE t1 ref y y 5 const 1 Using where
  240. 1 SIMPLE t2 ALL x NULL NULL NULL 9 Range checked for each record (index map: 0x1)
  241. explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
  242. id select_type table type possible_keys key key_len ref rows Extra
  243. 1 SIMPLE t1 ref y y 5 const 1 Using where
  244. 1 SIMPLE t2 range x x 5 NULL 2 Using where
  245. explain select count(*) from t1 where x in (1);
  246. id select_type table type possible_keys key key_len ref rows Extra
  247. 1 SIMPLE t1 ref x x 5 const 1 Using where; Using index
  248. explain select count(*) from t1 where x in (1,2);
  249. id select_type table type possible_keys key key_len ref rows Extra
  250. 1 SIMPLE t1 range x x 5 NULL 2 Using where; Using index
  251. drop table t1;
  252. CREATE TABLE t1 (key1 int(11) NOT NULL default '0', KEY i1 (key1));
  253. INSERT INTO t1 VALUES (0),(0),(1),(1);
  254. CREATE TABLE t2 (keya int(11) NOT NULL default '0', KEY j1 (keya));
  255. INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
  256. explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
  257. id select_type table type possible_keys key key_len ref rows Extra
  258. 1 SIMPLE t2 ref j1 j1 4 const 1 Using where; Using index
  259. 1 SIMPLE t1 ALL i1 NULL NULL NULL 4 Range checked for each record (index map: 0x1)
  260. DROP TABLE t1,t2;
  261. CREATE TABLE t1 (
  262. a int(11) default NULL,
  263. b int(11) default NULL,
  264. KEY a (a),
  265. KEY b (b)
  266. ) ENGINE=MyISAM;
  267. INSERT INTO t1 VALUES
  268. (1,1),(2,1),(3,1),(4,1),(5,1),(6,1),(7,1),(8,1),(9,1),(10,2),(10,2),
  269. (13,2),(14,2),(15,2),(16,2),(17,3),(17,3),(16,3),(17,3),(19,3),(20,3),
  270. (21,4),(22,5),(23,5),(24,5),(25,5),(26,5),(30,5),(31,5),(32,5),(33,5),
  271. (33,5),(33,5),(33,5),(33,5),(34,5),(35,5);
  272. EXPLAIN SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
  273. id select_type table type possible_keys key key_len ref rows Extra
  274. 1 SIMPLE t1 range a,b a 5 NULL 2 Using where
  275. SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
  276. a b
  277. DROP TABLE t1;
  278. CREATE TABLE t1 (a int, b int, c int, INDEX (c,a,b));
  279. INSERT INTO t1 VALUES (1,0,0),(1,0,0),(1,0,0);
  280. INSERT INTO t1 VALUES (0,1,0),(0,1,0),(0,1,0);
  281. SELECT COUNT(*) FROM t1 WHERE (c=0 and a=1) or (c=0 and b=1);
  282. COUNT(*)
  283. 6
  284. SELECT COUNT(*) FROM t1 WHERE (c=0 and b=1) or (c=0 and a=1);
  285. COUNT(*)
  286. 6
  287. DROP TABLE t1;
  288. CREATE TABLE t1 ( a int not null, b int not null, INDEX ab(a,b) );
  289. INSERT INTO t1 VALUES (47,1), (70,1), (15,1), (15, 4);
  290. SELECT * FROM t1
  291. WHERE
  292. (
  293. ( b =1 AND a BETWEEN 14 AND 21 ) OR
  294. ( b =2 AND a BETWEEN 16 AND 18 ) OR
  295. ( b =3 AND a BETWEEN 15 AND 19 ) OR
  296. (a BETWEEN 19 AND 47)
  297. );
  298. a b
  299. 15 1
  300. 47 1
  301. DROP TABLE t1;
  302. CREATE TABLE t1 (
  303. id int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,
  304. line int( 5 ) unsigned NOT NULL default '0',
  305. columnid int( 3 ) unsigned NOT NULL default '0',
  306. owner int( 3 ) unsigned NOT NULL default '0',
  307. ordinal int( 3 ) unsigned NOT NULL default '0',
  308. showid smallint( 6 ) unsigned NOT NULL default '1',
  309. tableid int( 1 ) unsigned NOT NULL default '1',
  310. content int( 5 ) unsigned NOT NULL default '188',
  311. PRIMARY KEY ( owner, id ) ,
  312. KEY menu( owner, showid, columnid ) ,
  313. KEY `COLUMN` ( owner, columnid, line ) ,
  314. KEY `LINES` ( owner, tableid, content, id ) ,
  315. KEY recount( owner, line ) 
  316. ) ENGINE = MYISAM;
  317. INSERT into t1 (owner,id,columnid,line) values (11,15,15,1),(11,13,13,5);
  318. SELECT id, columnid, tableid, content, showid, line, ordinal FROM t1 WHERE owner=11 AND ((columnid IN ( 15, 13, 14 ) AND line IN ( 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 31 )) OR (columnid IN ( 13, 14 ) AND line IN ( 15 ))) LIMIT 0 , 30;
  319. id columnid tableid content showid line ordinal
  320. 13 13 1 188 1 5 0
  321. 15 15 1 188 1 1 0
  322. drop table t1;
  323. create  table t1 (id int(10) primary key);
  324. insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9);
  325. select id from t1 where id in (2,5,9) ;
  326. id
  327. 2
  328. 5
  329. 9
  330. select id from t1 where id=2 or id=5 or id=9 ;
  331. id
  332. 2
  333. 5
  334. 9
  335. drop table t1;
  336. create table t1 ( id1 int not null, id2 int not null, idnull int null, c char(20), primary key (id1,id2));
  337. insert into t1 values (0,1,NULL,"aaa"), (1,1,NULL,"aaa"), (2,1,NULL,"aaa"),
  338. (3,1,NULL,"aaa"), (4,1,NULL,"aaa"), (5,1,NULL,"aaa"),
  339. (6,1,NULL,"aaa"), (7,1,NULL,"aaa"), (8,1,NULL,"aaa"),
  340. (9,1,NULL,"aaa"), (10,1,NULL,"aaa"), (11,1,NULL,"aaa"),
  341. (12,1,NULL,"aaa"), (13,1,NULL,"aaa"), (14,1,NULL,"aaa"),
  342. (15,1,NULL,"aaa"), (16,1,NULL,"aaa"), (17,1,NULL,"aaa"),
  343. (18,1,NULL,"aaa"), (19,1,NULL,"aaa"), (20,1,NULL,"aaa");
  344. select a.id1, b.idnull from t1 as a, t1 as b where a.id2=1 and a.id1=1 and b.id1=a.idnull order by b.id2 desc limit 1;
  345. id1 idnull
  346. drop table t1;
  347. create table t1 (
  348. id int not null auto_increment,
  349. name char(1) not null,
  350. uid int not null,
  351. primary key (id),
  352. index uid_index (uid));
  353. create table t2 (
  354. id int not null auto_increment,
  355. name char(1) not null,
  356. uid int not null,
  357. primary key (id),
  358. index uid_index (uid));
  359. insert into t1(id, uid, name) values(1, 0, ' ');
  360. insert into t1(uid, name) values(0, ' ');
  361. insert into t2(uid, name) select uid, name from t1;
  362. insert into t1(uid, name) select uid, name from t2;
  363. insert into t2(uid, name) select uid, name from t1;
  364. insert into t1(uid, name) select uid, name from t2;
  365. insert into t2(uid, name) select uid, name from t1;
  366. insert into t1(uid, name) select uid, name from t2;
  367. insert into t2(uid, name) select uid, name from t1;
  368. insert into t1(uid, name) select uid, name from t2;
  369. insert into t2(uid, name) select uid, name from t1;
  370. insert into t1(uid, name) select uid, name from t2;
  371. insert into t2(uid, name) select uid, name from t1;
  372. insert into t2(uid, name) select uid, name from t1;
  373. insert into t2(uid, name) select uid, name from t1;
  374. insert into t2(uid, name) select uid, name from t1;
  375. insert into t1(uid, name) select uid, name from t2;
  376. delete from t2;
  377. insert into t2(uid, name) values 
  378. (1, CHAR(64+1)),
  379. (2, CHAR(64+2)),
  380. (3, CHAR(64+3)),
  381. (4, CHAR(64+4)),
  382. (5, CHAR(64+5)),
  383. (6, CHAR(64+6)),
  384. (7, CHAR(64+7)),
  385. (8, CHAR(64+8)),
  386. (9, CHAR(64+9)),
  387. (10, CHAR(64+10)),
  388. (11, CHAR(64+11)),
  389. (12, CHAR(64+12)),
  390. (13, CHAR(64+13)),
  391. (14, CHAR(64+14)),
  392. (15, CHAR(64+15)),
  393. (16, CHAR(64+16)),
  394. (17, CHAR(64+17)),
  395. (18, CHAR(64+18)),
  396. (19, CHAR(64+19)),
  397. (20, CHAR(64+20)),
  398. (21, CHAR(64+21)),
  399. (22, CHAR(64+22)),
  400. (23, CHAR(64+23)),
  401. (24, CHAR(64+24)),
  402. (25, CHAR(64+25)),
  403. (26, CHAR(64+26));
  404. insert into t1(uid, name) select uid, name from t2;
  405. delete from t2;
  406. insert into t2(id, uid, name) select id, uid, name from t1;
  407. select count(*) from t1;
  408. count(*)
  409. 1026
  410. select count(*) from t2;
  411. count(*)
  412. 1026
  413. explain select * from t1, t2  where t1.uid=t2.uid AND t1.uid > 0;
  414. id select_type table type possible_keys key key_len ref rows Extra
  415. 1 SIMPLE t1 range uid_index uid_index 4 NULL 128 Using where
  416. 1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
  417. explain select * from t1, t2  where t1.uid=t2.uid AND t1.uid != 0;
  418. id select_type table type possible_keys key key_len ref rows Extra
  419. 1 SIMPLE t1 range uid_index uid_index 4 NULL 129 Using where
  420. 1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
  421. select * from t1, t2  where t1.uid=t2.uid AND t1.uid > 0;
  422. id name uid id name uid
  423. 1001 A 1 1001 A 1
  424. 1002 B 2 1002 B 2
  425. 1003 C 3 1003 C 3
  426. 1004 D 4 1004 D 4
  427. 1005 E 5 1005 E 5
  428. 1006 F 6 1006 F 6
  429. 1007 G 7 1007 G 7
  430. 1008 H 8 1008 H 8
  431. 1009 I 9 1009 I 9
  432. 1010 J 10 1010 J 10
  433. 1011 K 11 1011 K 11
  434. 1012 L 12 1012 L 12
  435. 1013 M 13 1013 M 13
  436. 1014 N 14 1014 N 14
  437. 1015 O 15 1015 O 15
  438. 1016 P 16 1016 P 16
  439. 1017 Q 17 1017 Q 17
  440. 1018 R 18 1018 R 18
  441. 1019 S 19 1019 S 19
  442. 1020 T 20 1020 T 20
  443. 1021 U 21 1021 U 21
  444. 1022 V 22 1022 V 22
  445. 1023 W 23 1023 W 23
  446. 1024 X 24 1024 X 24
  447. 1025 Y 25 1025 Y 25
  448. 1026 Z 26 1026 Z 26
  449. select * from t1, t2  where t1.uid=t2.uid AND t1.uid != 0;
  450. id name uid id name uid
  451. 1001 A 1 1001 A 1
  452. 1002 B 2 1002 B 2
  453. 1003 C 3 1003 C 3
  454. 1004 D 4 1004 D 4
  455. 1005 E 5 1005 E 5
  456. 1006 F 6 1006 F 6
  457. 1007 G 7 1007 G 7
  458. 1008 H 8 1008 H 8
  459. 1009 I 9 1009 I 9
  460. 1010 J 10 1010 J 10
  461. 1011 K 11 1011 K 11
  462. 1012 L 12 1012 L 12
  463. 1013 M 13 1013 M 13
  464. 1014 N 14 1014 N 14
  465. 1015 O 15 1015 O 15
  466. 1016 P 16 1016 P 16
  467. 1017 Q 17 1017 Q 17
  468. 1018 R 18 1018 R 18
  469. 1019 S 19 1019 S 19
  470. 1020 T 20 1020 T 20
  471. 1021 U 21 1021 U 21
  472. 1022 V 22 1022 V 22
  473. 1023 W 23 1023 W 23
  474. 1024 X 24 1024 X 24
  475. 1025 Y 25 1025 Y 25
  476. 1026 Z 26 1026 Z 26
  477. drop table t1,t2;
  478. create table t1 (x bigint unsigned not null);
  479. insert into t1(x) values (0xfffffffffffffff0);
  480. insert into t1(x) values (0xfffffffffffffff1);
  481. select * from t1;
  482. x
  483. 18446744073709551600
  484. 18446744073709551601
  485. select count(*) from t1 where x>0;
  486. count(*)
  487. 2
  488. select count(*) from t1 where x=0;
  489. count(*)
  490. 0
  491. select count(*) from t1 where x<0;
  492. count(*)
  493. 0
  494. select count(*) from t1 where x < -16;
  495. count(*)
  496. 0
  497. select count(*) from t1 where x = -16;
  498. count(*)
  499. 0
  500. select count(*) from t1 where x > -16;
  501. count(*)
  502. 2
  503. select count(*) from t1 where x = 18446744073709551601;
  504. count(*)
  505. 1
  506. create table t2 (x bigint not null);
  507. insert into t2(x) values (0xfffffffffffffff0);
  508. insert into t2(x) values (0xfffffffffffffff1);
  509. select * from t2;
  510. x
  511. -16
  512. -15
  513. select count(*) from t2 where x>0;
  514. count(*)
  515. 0
  516. select count(*) from t2 where x=0;
  517. count(*)
  518. 0
  519. select count(*) from t2 where x<0;
  520. count(*)
  521. 2
  522. select count(*) from t2 where x < -16;
  523. count(*)
  524. 0
  525. select count(*) from t2 where x = -16;
  526. count(*)
  527. 1
  528. select count(*) from t2 where x > -16;
  529. count(*)
  530. 1
  531. select count(*) from t2 where x = 18446744073709551601;
  532. count(*)
  533. 0
  534. drop table t1;
  535. create table t1 (x bigint unsigned not null primary key) engine=innodb;
  536. insert into t1(x) values (0xfffffffffffffff0);
  537. insert into t1(x) values (0xfffffffffffffff1);
  538. select * from t1;
  539. x
  540. 18446744073709551600
  541. 18446744073709551601
  542. select count(*) from t1 where x>0;
  543. count(*)
  544. 2
  545. select count(*) from t1 where x=0;
  546. count(*)
  547. 0
  548. select count(*) from t1 where x<0;
  549. count(*)
  550. 0
  551. select count(*) from t1 where x < -16;
  552. count(*)
  553. 0
  554. select count(*) from t1 where x = -16;
  555. count(*)
  556. 0
  557. select count(*) from t1 where x > -16;
  558. count(*)
  559. 2
  560. select count(*) from t1 where x = 18446744073709551601;
  561. count(*)
  562. 1
  563. drop table t1;
  564. create table t1 (a bigint unsigned);
  565. create index t1i on t1(a);
  566. insert into t1 select 18446744073709551615;
  567. insert into t1 select 18446744073709551614;
  568. explain select * from t1 where a <> -1;
  569. id select_type table type possible_keys key key_len ref rows Extra
  570. 1 SIMPLE t1 index t1i t1i 9 NULL 2 Using where; Using index
  571. select * from t1 where a <> -1;
  572. a
  573. 18446744073709551614
  574. 18446744073709551615
  575. explain select * from t1 where a > -1 or a < -1;
  576. id select_type table type possible_keys key key_len ref rows Extra
  577. 1 SIMPLE t1 index t1i t1i 9 NULL 2 Using where; Using index
  578. select * from t1 where a > -1 or a < -1;
  579. a
  580. 18446744073709551614
  581. 18446744073709551615
  582. explain select * from t1 where a > -1;
  583. id select_type table type possible_keys key key_len ref rows Extra
  584. 1 SIMPLE t1 index t1i t1i 9 NULL 2 Using where; Using index
  585. select * from t1 where a > -1;
  586. a
  587. 18446744073709551614
  588. 18446744073709551615
  589. explain select * from t1 where a < -1;
  590. id select_type table type possible_keys key key_len ref rows Extra
  591. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
  592. select * from t1 where a < -1;
  593. a
  594. drop table t1;
  595. set names latin1;
  596. create table t1 (a char(10), b text, key (a)) character set latin1;
  597. INSERT INTO t1 (a) VALUES
  598. ('111'),('222'),('222'),('222'),('222'),('444'),('aaa'),('AAA'),('bbb');
  599. explain select * from t1 where a='aaa';
  600. id select_type table type possible_keys key key_len ref rows Extra
  601. 1 SIMPLE t1 ref a a 11 const 2 Using where
  602. explain select * from t1 where a=binary 'aaa';
  603. id select_type table type possible_keys key key_len ref rows Extra
  604. 1 SIMPLE t1 range a a 11 NULL 2 Using where
  605. explain select * from t1 where a='aaa' collate latin1_bin;
  606. id select_type table type possible_keys key key_len ref rows Extra
  607. 1 SIMPLE t1 range a a 11 NULL 2 Using where
  608. explain select * from t1 where a='aaa' collate latin1_german1_ci;
  609. id select_type table type possible_keys key key_len ref rows Extra
  610. 1 SIMPLE t1 ALL a NULL NULL NULL 9 Using where
  611. drop table t1;
  612. CREATE TABLE t1 (
  613. `CLIENT` char(3) character set latin1 collate latin1_bin NOT NULL default '000',
  614. `ARG1` char(3) character set latin1 collate latin1_bin NOT NULL default '',
  615. `ARG2` char(3) character set latin1 collate latin1_bin NOT NULL default '',
  616. `FUNCTION` varchar(10) character set latin1 collate latin1_bin NOT NULL default '',
  617. `FUNCTINT` int(11) NOT NULL default '0',
  618. KEY `VERI_CLNT~2` (`ARG1`)
  619. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  620. INSERT INTO t1 VALUES ('000',' 0',' 0','Text 001',0), ('000',' 0',' 1','Text 002',0),
  621. ('000',' 1',' 2','Text 003',0), ('000',' 2',' 3','Text 004',0),
  622. ('001',' 3',' 0','Text 017',0);
  623. SELECT count(*) FROM t1 WHERE CLIENT='000' AND (ARG1 != ' 1' OR ARG1 != ' 2');
  624. count(*)
  625. 4
  626. SELECT count(*) FROM t1 WHERE CLIENT='000' AND (ARG1 != ' 2' OR ARG1 != ' 1');
  627. count(*)
  628. 4
  629. drop table t1;