You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

326 lines
6.0 KiB

  1. drop table if exists t1;
  2. create table t1 (
  3. a char(3) character set latin1 collate latin1_bin primary key
  4. ) engine=ndb;
  5. insert into t1 values('aAa');
  6. insert into t1 values('aaa');
  7. insert into t1 values('AAA');
  8. select * from t1 order by a;
  9. a
  10. AAA
  11. aAa
  12. aaa
  13. select * from t1 where a = 'aAa';
  14. a
  15. aAa
  16. select * from t1 where a = 'aaa';
  17. a
  18. aaa
  19. select * from t1 where a = 'AaA';
  20. a
  21. select * from t1 where a = 'AAA';
  22. a
  23. AAA
  24. drop table t1;
  25. create table t1 (
  26. a char(3) character set latin1 collate latin1_swedish_ci primary key
  27. ) engine=ndb;
  28. insert into t1 values('aAa');
  29. insert into t1 values('aaa');
  30. ERROR 23000: Duplicate entry 'aaa' for key 'PRIMARY'
  31. insert into t1 values('AAA');
  32. ERROR 23000: Duplicate entry 'AAA' for key 'PRIMARY'
  33. select * from t1 order by a;
  34. a
  35. aAa
  36. select * from t1 where a = 'aAa';
  37. a
  38. aAa
  39. select * from t1 where a = 'aaa';
  40. a
  41. aAa
  42. select * from t1 where a = 'AaA';
  43. a
  44. aAa
  45. select * from t1 where a = 'AAA';
  46. a
  47. aAa
  48. drop table t1;
  49. create table t1 (
  50. a varchar(20) character set latin1 collate latin1_swedish_ci primary key
  51. ) engine=ndb;
  52. insert into t1 values ('A'),('b '),('C '),('d '),('E'),('f');
  53. insert into t1 values('b');
  54. ERROR 23000: Duplicate entry 'b' for key 'PRIMARY'
  55. insert into t1 values('a ');
  56. ERROR 23000: Duplicate entry 'a ' for key 'PRIMARY'
  57. select a,length(a) from t1 order by a;
  58. a length(a)
  59. A 1
  60. b 2
  61. C 3
  62. d 7
  63. E 1
  64. f 1
  65. select a,length(a) from t1 order by a desc;
  66. a length(a)
  67. f 1
  68. E 1
  69. d 7
  70. C 3
  71. b 2
  72. A 1
  73. select * from t1 where a = 'a';
  74. a
  75. A
  76. select * from t1 where a = 'a ';
  77. a
  78. A
  79. select * from t1 where a = 'd';
  80. a
  81. d
  82. drop table t1;
  83. create table t1 (
  84. p int primary key,
  85. a char(3) character set latin1 collate latin1_bin not null,
  86. unique key(a)
  87. ) engine=ndb;
  88. insert into t1 values(1, 'aAa');
  89. insert into t1 values(2, 'aaa');
  90. insert into t1 values(3, 'AAA');
  91. select * from t1 order by p;
  92. p a
  93. 1 aAa
  94. 2 aaa
  95. 3 AAA
  96. select * from t1 where a = 'aAa';
  97. p a
  98. 1 aAa
  99. select * from t1 where a = 'aaa';
  100. p a
  101. 2 aaa
  102. select * from t1 where a = 'AaA';
  103. p a
  104. select * from t1 where a = 'AAA';
  105. p a
  106. 3 AAA
  107. drop table t1;
  108. create table t1 (
  109. p int primary key,
  110. a char(3) character set latin1 collate latin1_swedish_ci not null,
  111. unique key(a)
  112. ) engine=ndb;
  113. insert into t1 values(1, 'aAa');
  114. insert into t1 values(2, 'aaa');
  115. ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
  116. insert into t1 values(3, 'AAA');
  117. ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
  118. select * from t1 order by p;
  119. p a
  120. 1 aAa
  121. select * from t1 where a = 'aAa';
  122. p a
  123. 1 aAa
  124. select * from t1 where a = 'aaa';
  125. p a
  126. 1 aAa
  127. select * from t1 where a = 'AaA';
  128. p a
  129. 1 aAa
  130. select * from t1 where a = 'AAA';
  131. p a
  132. 1 aAa
  133. drop table t1;
  134. create table t1 (
  135. p int primary key,
  136. a varchar(20) character set latin1 collate latin1_swedish_ci not null,
  137. unique key(a)
  138. ) engine=ndb;
  139. insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
  140. insert into t1 values(99,'b');
  141. ERROR 23000: Duplicate entry '99' for key 'PRIMARY'
  142. insert into t1 values(99,'a ');
  143. ERROR 23000: Duplicate entry '99' for key 'PRIMARY'
  144. select a,length(a) from t1 order by a;
  145. a length(a)
  146. A 1
  147. b 2
  148. C 3
  149. d 7
  150. E 1
  151. f 1
  152. select a,length(a) from t1 order by a desc;
  153. a length(a)
  154. f 1
  155. E 1
  156. d 7
  157. C 3
  158. b 2
  159. A 1
  160. select * from t1 where a = 'a';
  161. p a
  162. 1 A
  163. select * from t1 where a = 'a ';
  164. p a
  165. 1 A
  166. select * from t1 where a = 'd';
  167. p a
  168. 4 d
  169. drop table t1;
  170. create table t1 (
  171. p int primary key,
  172. a char(3) character set latin1 collate latin1_bin not null,
  173. index(a)
  174. ) engine=ndb;
  175. insert into t1 values(1, 'aAa');
  176. insert into t1 values(2, 'aaa');
  177. insert into t1 values(3, 'AAA');
  178. insert into t1 values(4, 'aAa');
  179. insert into t1 values(5, 'aaa');
  180. insert into t1 values(6, 'AAA');
  181. select * from t1 order by p;
  182. p a
  183. 1 aAa
  184. 2 aaa
  185. 3 AAA
  186. 4 aAa
  187. 5 aaa
  188. 6 AAA
  189. explain select * from t1 where a = 'zZz' order by p;
  190. id select_type table type possible_keys key key_len ref rows Extra
  191. 1 SIMPLE t1 const a NULL NULL NULL 1
  192. select * from t1 where a = 'aAa' order by p;
  193. p a
  194. 1 aAa
  195. 4 aAa
  196. select * from t1 where a = 'aaa' order by p;
  197. p a
  198. 2 aaa
  199. 5 aaa
  200. select * from t1 where a = 'AaA' order by p;
  201. p a
  202. select * from t1 where a = 'AAA' order by p;
  203. p a
  204. 3 AAA
  205. 6 AAA
  206. drop table t1;
  207. create table t1 (
  208. p int primary key,
  209. a char(3) character set latin1 collate latin1_swedish_ci not null,
  210. index(a)
  211. ) engine=ndb;
  212. insert into t1 values(1, 'aAa');
  213. insert into t1 values(2, 'aaa');
  214. insert into t1 values(3, 'AAA');
  215. insert into t1 values(4, 'aAa');
  216. insert into t1 values(5, 'aaa');
  217. insert into t1 values(6, 'AAA');
  218. select * from t1 order by p;
  219. p a
  220. 1 aAa
  221. 2 aaa
  222. 3 AAA
  223. 4 aAa
  224. 5 aaa
  225. 6 AAA
  226. explain select * from t1 where a = 'zZz' order by p;
  227. id select_type table type possible_keys key key_len ref rows Extra
  228. 1 SIMPLE t1 const a NULL NULL NULL 1
  229. select * from t1 where a = 'aAa' order by p;
  230. p a
  231. 1 aAa
  232. 2 aaa
  233. 3 AAA
  234. 4 aAa
  235. 5 aaa
  236. 6 AAA
  237. select * from t1 where a = 'aaa' order by p;
  238. p a
  239. 1 aAa
  240. 2 aaa
  241. 3 AAA
  242. 4 aAa
  243. 5 aaa
  244. 6 AAA
  245. select * from t1 where a = 'AaA' order by p;
  246. p a
  247. 1 aAa
  248. 2 aaa
  249. 3 AAA
  250. 4 aAa
  251. 5 aaa
  252. 6 AAA
  253. select * from t1 where a = 'AAA' order by p;
  254. p a
  255. 1 aAa
  256. 2 aaa
  257. 3 AAA
  258. 4 aAa
  259. 5 aaa
  260. 6 AAA
  261. drop table t1;
  262. create table t1 (
  263. p int primary key,
  264. a varchar(20) character set latin1 collate latin1_swedish_ci not null,
  265. index(a, p)
  266. ) engine=ndb;
  267. insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
  268. insert into t1 values (7,'a'),(8,'B '),(9,'c '),(10,'D'),(11,'e'),(12,'F ');
  269. select p,a,length(a) from t1 order by a, p;
  270. p a length(a)
  271. 1 A 1
  272. 7 a 1
  273. 2 b 2
  274. 8 B 2
  275. 3 C 3
  276. 9 c 3
  277. 4 d 7
  278. 10 D 1
  279. 5 E 1
  280. 11 e 1
  281. 6 f 1
  282. 12 F 3
  283. select * from t1 where a = 'a ' order by a desc, p desc;
  284. p a
  285. 7 a
  286. 1 A
  287. select * from t1 where a >= 'D' order by a, p;
  288. p a
  289. 4 d
  290. 10 D
  291. 5 E
  292. 11 e
  293. 6 f
  294. 12 F
  295. select * from t1 where a < 'D' order by a, p;
  296. p a
  297. 1 A
  298. 7 a
  299. 2 b
  300. 8 B
  301. 3 C
  302. 9 c
  303. select count(*) from t1 x, t1 y, t1 z where x.a = y.a and y.a = z.a;
  304. count(*)
  305. 48
  306. drop table t1;
  307. create table t1 (
  308. a char(10) primary key
  309. ) engine=ndbcluster default charset=latin1;
  310. insert into t1 values ('aaabb');
  311. select * from t1;
  312. a
  313. aaabb
  314. replace into t1 set a = 'AAABB';
  315. select * from t1;
  316. a
  317. AAABB
  318. replace into t1 set a = 'aAaBb';
  319. select * from t1;
  320. a
  321. aAaBb
  322. replace into t1 set a = 'aaabb';
  323. select * from t1;
  324. a
  325. aaabb
  326. drop table t1;