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

MySQL数据库

开发平台:

Visual C++

  1. drop table if exists t1,t2;
  2. create table t1 (a int not null auto_increment, b int not null, primary key(a));
  3. insert into t1 (b) values (2),(3),(5),(5),(5),(6),(7),(9);
  4. select SQL_CALC_FOUND_ROWS * from t1;
  5. a b
  6. 1 2
  7. 2 3
  8. 3 5
  9. 4 5
  10. 5 5
  11. 6 6
  12. 7 7
  13. 8 9
  14. select found_rows();
  15. found_rows()
  16. 8
  17. select SQL_CALC_FOUND_ROWS * from t1 limit 1;
  18. a b
  19. 1 2
  20. select found_rows();
  21. found_rows()
  22. 8
  23. select SQL_BUFFER_RESULT SQL_CALC_FOUND_ROWS * from t1 limit 1;
  24. a b
  25. 1 2
  26. select found_rows();
  27. found_rows()
  28. 8
  29. select SQL_CALC_FOUND_ROWS * from t1 order by b desc limit 1;
  30. a b
  31. 8 9
  32. select found_rows();
  33. found_rows()
  34. 8
  35. select SQL_CALC_FOUND_ROWS distinct b from t1 limit 1;
  36. b
  37. 2
  38. select found_rows();
  39. found_rows()
  40. 6
  41. select SQL_CALC_FOUND_ROWS b,count(*) as c from t1 group by b order by c desc limit 1;
  42. b c
  43. 5 3
  44. select found_rows();
  45. found_rows()
  46. 6
  47. select SQL_CALC_FOUND_ROWS * from t1 left join t1 as t2 on (t1.b=t2.a) limit 2,1;
  48. a b a b
  49. 3 5 5 5
  50. select found_rows();
  51. found_rows()
  52. 8
  53. drop table t1;
  54. create table t1 (a int not null primary key);
  55. insert into t1 values (1),(2),(3),(4),(5);
  56. select sql_calc_found_rows a from t1 where a in (1,2,3) order by a desc limit 0,2;
  57. a
  58. 3
  59. 2
  60. select FOUND_ROWS();
  61. FOUND_ROWS()
  62. 3
  63. select sql_calc_found_rows a from t1 where a in (1,2,3) order by a+2 desc limit 0,2;
  64. a
  65. 3
  66. 2
  67. select FOUND_ROWS();
  68. FOUND_ROWS()
  69. 3
  70. drop table t1;
  71. CREATE TABLE t1 (
  72. `id` smallint(5) unsigned NOT NULL auto_increment,
  73. `kid` smallint(5) unsigned NOT NULL default '0',
  74. PRIMARY KEY (`id`),
  75. KEY `kid` (`kid`)
  76. );
  77. CREATE TABLE t2 (
  78. id smallint(5) unsigned NOT NULL auto_increment,
  79. name varchar(50) NOT NULL default '',
  80. email varchar(50) NOT NULL default '',
  81. PRIMARY KEY  (id),
  82. UNIQUE KEY e_n (email,name)
  83. );
  84. EXPLAIN SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1  ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
  85. id select_type table type possible_keys key key_len ref rows Extra
  86. 1 SIMPLE t1 system PRIMARY,kid NULL NULL NULL 0 const row not found
  87. 1 SIMPLE t2 index NULL e_n 100 NULL 200
  88. SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1  ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
  89. email
  90. email1
  91. email10
  92. email100
  93. email101
  94. email102
  95. email103
  96. email104
  97. email105
  98. email106
  99. email107
  100. SELECT FOUND_ROWS();
  101. FOUND_ROWS()
  102. 200
  103. SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1  ON kid = t2.id WHERE t1.id IS NULL order by email LIMIT 10;
  104. email
  105. email1
  106. email10
  107. email100
  108. email101
  109. email102
  110. email103
  111. email104
  112. email105
  113. email106
  114. email107
  115. SELECT FOUND_ROWS();
  116. FOUND_ROWS()
  117. 200
  118. SELECT DISTINCT email FROM t2 LEFT JOIN t1  ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
  119. email
  120. email1
  121. email2
  122. email3
  123. email4
  124. email5
  125. email6
  126. email7
  127. email8
  128. email9
  129. email10
  130. SELECT DISTINCT email FROM t2 LEFT JOIN t1  ON kid = t2.id WHERE t1.id IS NULL ORDER BY email LIMIT 10;
  131. email
  132. email1
  133. email10
  134. email100
  135. email101
  136. email102
  137. email103
  138. email104
  139. email105
  140. email106
  141. email107
  142. INSERT INTO `t1` (`id`, `kid`) VALUES ('0', '150');
  143. SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1  ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
  144. email
  145. email1
  146. email2
  147. email3
  148. email4
  149. email5
  150. email6
  151. email7
  152. email8
  153. email9
  154. email10
  155. SELECT FOUND_ROWS();
  156. FOUND_ROWS()
  157. 199
  158. drop table t1,t2;
  159. CREATE TABLE `t1` (
  160. `titre` char(80) NOT NULL default '',
  161. `numeropost` mediumint(8) unsigned NOT NULL auto_increment,
  162. `maxnumrep` int(10) unsigned NOT NULL default '0',
  163. PRIMARY KEY  (`numeropost`),
  164. KEY `maxnumrep` (`maxnumrep`)
  165. ) ENGINE=MyISAM ROW_FORMAT=FIXED;
  166. INSERT INTO t1 (titre,maxnumrep) VALUES
  167. ('test1','1'),('test2','2'),('test3','3');
  168. SELECT SQL_CALC_FOUND_ROWS titre,numeropost,maxnumrep FROM t1 WHERE numeropost IN (1,2) ORDER BY maxnumrep DESC LIMIT 0, 1;
  169. titre numeropost maxnumrep
  170. test2 2 2
  171. SELECT FOUND_ROWS();
  172. FOUND_ROWS()
  173. 2
  174. SELECT SQL_CALC_FOUND_ROWS 1 FROM (SELECT 1) as a LIMIT 0;
  175. 1
  176. SELECT FOUND_ROWS();
  177. FOUND_ROWS()
  178. 1
  179. SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE numeropost > 1  LIMIT 0;
  180. titre numeropost maxnumrep
  181. SELECT FOUND_ROWS();
  182. FOUND_ROWS()
  183. 2
  184. SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 0;
  185. titre numeropost maxnumrep
  186. SELECT FOUND_ROWS();
  187. FOUND_ROWS()
  188. 3
  189. SELECT SQL_CALC_FOUND_ROWS * FROM t1 ORDER BY numeropost  LIMIT 0;
  190. titre numeropost maxnumrep
  191. SELECT FOUND_ROWS();
  192. FOUND_ROWS()
  193. 3
  194. drop table t1;
  195. create table t1 (id int, primary key (id));
  196. insert into t1 values (1), (2), (3), (4), (5);
  197. select SQL_CALC_FOUND_ROWS * from t1 where id > 3 limit 0, 1;
  198. id
  199. 4
  200. select FOUND_ROWS();
  201. FOUND_ROWS()
  202. 2
  203. select SQL_CALC_FOUND_ROWS * from t1 where id > 3 AND 1=2 limit 0, 1;
  204. id
  205. select FOUND_ROWS();
  206. FOUND_ROWS()
  207. 0
  208. select SQL_CALC_FOUND_ROWS * from t1 where id > 6 limit 0, 1;
  209. id
  210. select FOUND_ROWS();
  211. FOUND_ROWS()
  212. 0
  213. drop table t1;
  214. CREATE TABLE t1 ( a int not null, b int not null, KEY ab(a,b) );
  215. INSERT INTO t1 VALUES ( 47,    1  );
  216. INSERT INTO t1 VALUES ( 70,    1  );
  217. SELECT * FROM t1
  218. WHERE
  219. (
  220. ( b =1 AND a BETWEEN 14 AND 21 ) OR
  221. ( b =2 AND a BETWEEN 16 AND 18 ) OR
  222. ( b =3 AND a BETWEEN 15 AND 19 )
  223. );
  224. a b
  225. DROP TABLE t1;
  226. CREATE TABLE t1 ( a integer, u varchar(15), r integer, key uao_idx( r, a, u));
  227. DELETE  FROM t1
  228. WHERE (  r = 1 AND a IN ( 1, 2    ) AND ( u = 'w'   OR u LIKE 'w/%'   ) )
  229. OR (  r = 1 AND a IN (       3 ) AND ( u = 'w/U' OR u LIKE 'w/U/%' ) )
  230. OR (  r = 1 AND a IN ( 1, 2, 3 ) AND ( u = 'w'                     ) );
  231. drop table t1;
  232. CREATE TABLE t1 (a VARCHAR(16), UNIQUE(a));
  233. INSERT INTO t1 VALUES ('1'), ('2'), ('3');
  234. SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = '2' LIMIT 0, 1;
  235. a
  236. 2
  237. SELECT FOUND_ROWS();
  238. FOUND_ROWS()
  239. 1
  240. DROP TABLE t1;
  241. CREATE TABLE t1 (a INT);
  242. INSERT INTO t1 VALUES (0), (0), (1), (2);
  243. SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = 0 GROUP BY a HAVING a > 10;
  244. a
  245. SELECT FOUND_ROWS();
  246. FOUND_ROWS()
  247. 0
  248. DROP TABLE t1;
  249. SELECT 'foo';
  250. foo
  251. foo
  252. SELECT FOUND_ROWS();
  253. FOUND_ROWS()
  254. 1
  255. SELECT SQL_CALC_FOUND_ROWS 'foo';
  256. foo
  257. foo
  258. SELECT FOUND_ROWS();
  259. FOUND_ROWS()
  260. 1
  261. SELECT SQL_CALC_FOUND_ROWS 'foo' limit 0;
  262. foo
  263. SELECT FOUND_ROWS();
  264. FOUND_ROWS()
  265. 1
  266. SELECT FOUND_ROWS();
  267. FOUND_ROWS()
  268. 1
  269. SELECT SQL_CALC_FOUND_ROWS 'foo' UNION SELECT 'bar' LIMIT 0;
  270. foo
  271. SELECT FOUND_ROWS();
  272. FOUND_ROWS()
  273. 2
  274. CREATE TABLE t1 (a int, b int);
  275. INSERT INTO t1 VALUES (1,2), (1,3), (1,4), (1,5);
  276. SELECT SQL_CALC_FOUND_ROWS DISTINCT 'a' FROM t1 GROUP BY b LIMIT 2;
  277. a
  278. a
  279. SELECT FOUND_ROWS();
  280. FOUND_ROWS()
  281. 1
  282. DROP TABLE t1;