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.

206 lines
12 KiB

  1. drop table if exists t1,t2;
  2. select 0=0,1>0,1>=1,1<0,1<=0,1!=0,strcmp("abc","abcd"),strcmp("b","a"),strcmp("a","a") ;
  3. 0=0 1>0 1>=1 1<0 1<=0 1!=0 strcmp("abc","abcd") strcmp("b","a") strcmp("a","a")
  4. 1 1 1 0 0 1 -1 1 0
  5. select "a"<"b","a"<="b","b">="a","b">"a","a"="A","a"<>"b";
  6. "a"<"b" "a"<="b" "b">="a" "b">"a" "a"="A" "a"<>"b"
  7. 1 1 1 1 1 1
  8. select "a "="A", "A "="a", "a " <= "A b";
  9. "a "="A" "A "="a" "a " <= "A b"
  10. 1 1 1
  11. select "abc" like "a%", "abc" not like "%d%", "a%" like "a\%","abc%" like "a%\%","abcd" like "a%b_%d", "a" like "%%a","abcde" like "a%_e","abc" like "abc%";
  12. "abc" like "a%" "abc" not like "%d%" "a%" like "a\%" "abc%" like "a%\%" "abcd" like "a%b_%d" "a" like "%%a" "abcde" like "a%_e" "abc" like "abc%"
  13. 1 1 1 1 1 1 1 1
  14. select "a" like "%%b","a" like "%%ab","ab" like "a\%", "ab" like "_", "ab" like "ab_", "abc" like "%_d", "abc" like "abc%d";
  15. "a" like "%%b" "a" like "%%ab" "ab" like "a\%" "ab" like "_" "ab" like "ab_" "abc" like "%_d" "abc" like "abc%d"
  16. 0 0 0 0 0 0 0
  17. select '?' like '|%', '?' like '|%' ESCAPE '|', '%' like '|%', '%' like '|%' ESCAPE '|', '%' like '%';
  18. '?' like '|%' '?' like '|%' ESCAPE '|' '%' like '|%' '%' like '|%' ESCAPE '|' '%' like '%'
  19. 0 0 0 1 1
  20. select 'abc' like '%c','abcabc' like '%c', "ab" like "", "ab" like "a", "ab" like "ab";
  21. 'abc' like '%c' 'abcabc' like '%c' "ab" like "" "ab" like "a" "ab" like "ab"
  22. 1 1 0 0 1
  23. select "Det h�r �r svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$";
  24. "Det h�r �r svenska" regexp "h[[:alpha:]]+r" "aba" regexp "^(a|b)*$"
  25. 1 1
  26. select "aba" regexp concat("^","a");
  27. "aba" regexp concat("^","a")
  28. 1
  29. select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0;
  30. !0 NOT 0=1 !(0=0) 1 AND 1 1 && 0 0 OR 1 1 || NULL 1=1 or 1=1 and 1=0
  31. 1 1 0 1 0 1 1 1
  32. select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3;
  33. 2 between 1 and 3 "monty" between "max" and "my" 2=2 and "monty" between "max" and "my" and 3=3
  34. 1 1 1
  35. select 'b' between 'a' and 'c', 'B' between 'a' and 'c';
  36. 'b' between 'a' and 'c' 'B' between 'a' and 'c'
  37. 1 1
  38. select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0);
  39. 2 in (3,2,5,9,5,1) "monty" in ("david","monty","allan") 1.2 in (1.4,1.2,1.0)
  40. 1 1 1
  41. select -1.49 or -1.49,0.6 or 0.6;
  42. -1.49 or -1.49 0.6 or 0.6
  43. 1 1
  44. select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
  45. 3 ^ 11 1 ^ 1 1 ^ 0 1 ^ NULL NULL ^ 1
  46. 8 0 1 NULL NULL
  47. explain extended select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
  48. id select_type table type possible_keys key key_len ref rows Extra
  49. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
  50. Warnings:
  51. Note 1003 select (3 ^ 11) AS `3 ^ 11`,(1 ^ 1) AS `1 ^ 1`,(1 ^ 0) AS `1 ^ 0`,(1 ^ NULL) AS `1 ^ NULL`,(NULL ^ 1) AS `NULL ^ 1`
  52. select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
  53. 1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL
  54. 0 1 1 0 NULL NULL NULL
  55. select 1 like 2 xor 2 like 1;
  56. 1 like 2 xor 2 like 1
  57. 0
  58. select 10 % 7, 10 mod 7, 10 div 3;
  59. 10 % 7 10 mod 7 10 div 3
  60. 3 3 3
  61. explain extended select 10 % 7, 10 mod 7, 10 div 3;
  62. id select_type table type possible_keys key key_len ref rows Extra
  63. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
  64. Warnings:
  65. Note 1003 select (10 % 7) AS `10 % 7`,(10 % 7) AS `10 mod 7`,(10 DIV 3) AS `10 div 3`
  66. select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2;
  67. (1 << 64)-1 ((1 << 64)-1) DIV 1 ((1 << 64)-1) DIV 2
  68. 18446744073709551615 18446744073709551615 9223372036854775807
  69. explain extended select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2;
  70. id select_type table type possible_keys key key_len ref rows Extra
  71. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
  72. Warnings:
  73. Note 1003 select ((1 << 64) - 1) AS `(1 << 64)-1`,(((1 << 64) - 1) DIV 1) AS `((1 << 64)-1) DIV 1`,(((1 << 64) - 1) DIV 2) AS `((1 << 64)-1) DIV 2`
  74. create table t1 (a int);
  75. insert t1 values (1);
  76. select * from t1 where 1 xor 1;
  77. a
  78. explain extended select * from t1 where 1 xor 1;
  79. id select_type table type possible_keys key key_len ref rows Extra
  80. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
  81. Warnings:
  82. Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1`
  83. select - a from t1;
  84. - a
  85. -1
  86. explain extended select - a from t1;
  87. id select_type table type possible_keys key key_len ref rows Extra
  88. 1 SIMPLE t1 system NULL NULL NULL NULL 1
  89. Warnings:
  90. Note 1003 select -(`test`.`t1`.`a`) AS `- a` from `test`.`t1`
  91. drop table t1;
  92. select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
  93. 5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1
  94. 0 1
  95. select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1;
  96. 1 and 2 between 2 and 10 2 between 2 and 10 and 1
  97. 1 1
  98. select 1 and 0 or 2, 2 or 1 and 0;
  99. 1 and 0 or 2 2 or 1 and 0
  100. 1 1
  101. select _koi8r'a' = _koi8r'A';
  102. _koi8r'a' = _koi8r'A'
  103. 1
  104. select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
  105. _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci
  106. 1
  107. explain extended select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
  108. id select_type table type possible_keys key key_len ref rows Extra
  109. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
  110. Warnings:
  111. Note 1003 select (_koi8r'a' = (_koi8r'A' collate koi8r_general_ci)) AS `_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci`
  112. select _koi8r'a' = _koi8r'A' COLLATE koi8r_bin;
  113. _koi8r'a' = _koi8r'A' COLLATE koi8r_bin
  114. 0
  115. select _koi8r'a' COLLATE koi8r_general_ci = _koi8r'A';
  116. _koi8r'a' COLLATE koi8r_general_ci = _koi8r'A'
  117. 1
  118. select _koi8r'a' COLLATE koi8r_bin = _koi8r'A';
  119. _koi8r'a' COLLATE koi8r_bin = _koi8r'A'
  120. 0
  121. select _koi8r'a' COLLATE koi8r_bin = _koi8r'A' COLLATE koi8r_general_ci;
  122. ERROR HY000: Illegal mix of collations (koi8r_bin,EXPLICIT) and (koi8r_general_ci,EXPLICIT) for operation '='
  123. select _koi8r'a' = _latin1'A';
  124. ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '='
  125. select strcmp(_koi8r'a', _koi8r'A');
  126. strcmp(_koi8r'a', _koi8r'A')
  127. 0
  128. select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci);
  129. strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci)
  130. 0
  131. select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin);
  132. strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin)
  133. 1
  134. select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A');
  135. strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A')
  136. 0
  137. select strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A');
  138. strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A')
  139. 1
  140. select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A' COLLATE koi8r_bin);
  141. ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'strcmp'
  142. select strcmp(_koi8r'a', _latin1'A');
  143. ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'strcmp'
  144. select _koi8r'a' LIKE _koi8r'A';
  145. _koi8r'a' LIKE _koi8r'A'
  146. 1
  147. select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci;
  148. _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci
  149. 1
  150. select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin;
  151. _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin
  152. 0
  153. select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A';
  154. _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A'
  155. 1
  156. select _koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A';
  157. _koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A'
  158. 0
  159. select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A' COLLATE koi8r_bin;
  160. ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'like'
  161. select _koi8r'a' LIKE _latin1'A';
  162. ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'like'
  163. CREATE TABLE t1 ( faq_group_id int(11) NOT NULL default '0', faq_id int(11) NOT NULL default '0', title varchar(240) default NULL, keywords text, description longblob, solution longblob, status tinyint(4) NOT NULL default '0', access_id smallint(6) default NULL, lang_id smallint(6) NOT NULL default '0', created datetime NOT NULL default '0000-00-00 00:00:00', updated datetime default NULL, last_access datetime default NULL, last_notify datetime default NULL, solved_count int(11) NOT NULL default '0', static_solved int(11) default NULL, solved_1 int(11) default NULL, solved_2 int(11) default NULL, solved_3 int(11) default NULL, solved_4 int(11) default NULL, solved_5 int(11) default NULL, expires datetime default NULL, notes text, assigned_to smallint(6) default NULL, assigned_group smallint(6) default NULL, last_edited_by smallint(6) default NULL, orig_ref_no varchar(15) binary default NULL, c$fundstate smallint(6) default NULL, c$contributor smallint(6) default NULL, UNIQUE KEY t1$faq_id (faq_id), KEY t1$group_id$faq_id (faq_group_id,faq_id), KEY t1$c$fundstate (c$fundstate) ) ENGINE=MyISAM;
  164. INSERT INTO t1 VALUES (82,82,'How to use the DynaVox Usage Counts Feature','usages count, number, corner, white, box, button','<as-html>\r\n<table width=\"100%\" border=\"0\">\r\n <tr>\r\n <td width=\"3%\">�</td>\r\n <td width=\"97%\">\r\n <h3><font face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000000\">How \r\n To</font><!-- #BeginEditable \"CS_troubleshoot_question\" --><font face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000099\"><font color=\"#000000\">: \r\n Display or Hide the Usage Counts to find out how many times each button is being selected. </font></font><!-- #EndEditable --></h3>\r\n </td>\r\n </tr>\r\n</table>','<as-html>\r\n <table width=\"100%\" border=\"0\">\r\n <tr>\r\n <td width=\"3%\">�</td>\r\n \r\n<td width=\"97%\"><!-- #BeginEditable \"CS_troubleshoot_answer\" --> \r\n \r\n<p><font color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">1. Select \r\n the <i>On/Setup</i> button to access the DynaVox Setup Menu.<br>\r\n 2. Select <b>Button Features.</b><br>\r\n 3. Below the <b>OK</b> button is the <b>Usage Counts</b> button.<br>\r\n a. If it says \"Hidden\" then the Usage Counts will not be displayed.<br>\r\n b. If it says \"Displayed\" then the Usage Counts will be shown.<br>\r\n c. Select the <b>Usage Counts</b> Option Ring once and it will toggle \r\n to the alternative option.<br>\r\n 4. Once the correct setting has been chosen, select <b>OK</b> to leave the <i>Button \r\n Features</i> menu.<br>\r\n 5. Select <b>OK</b> out of the <i>Setup</i> menu and return to the communication \r\n page.</font></p>\r\n <p><font color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">For \r\n further information on <i>Usage Counts,</i> see the <i>Button Features \r\n Menu Entry</i> in the DynaVox/DynaMyte Reference Manual.</font></p>\r\n<!-- #EndEditable --></td>\r\n </tr>\r\n</table>',4,1,1,'2001-11-16 16:43:34','2002-11-25 12:09:43','2003-07-24 01:04:48',NULL,11,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,11,NULL,NULL,NULL);
  165. CREATE TABLE t2 ( access_id smallint(6) NOT NULL default '0', name varchar(20) binary default NULL, rank smallint(6) NOT NULL default '0', KEY t2$access_id (access_id) ) ENGINE=MyISAM;
  166. INSERT INTO t2 VALUES (1,'Everyone',2),(2,'Help',3),(3,'Customer Support',1);
  167. SELECT f_acc.rank, a1.rank, a2.rank FROM t1 LEFT JOIN t1 f1 ON (f1.access_id=1 AND f1.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a1 ON (a1.access_id = f1.access_id) LEFT JOIN t1 f2 ON (f2.access_id=3 AND f2.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a2 ON (a2.access_id = f2.access_id), t2 f_acc WHERE LEAST(a1.rank,a2.rank) = f_acc.rank;
  168. rank rank rank
  169. DROP TABLE t1,t2;
  170. CREATE TABLE t1 (d varchar(6), k int);
  171. INSERT INTO t1 VALUES (NULL, 2);
  172. SELECT GREATEST(d,d) FROM t1 WHERE k=2;
  173. GREATEST(d,d)
  174. NULL
  175. DROP TABLE t1;
  176. select 1197.90 mod 50;
  177. 1197.90 mod 50
  178. 47.90
  179. select 5.1 mod 3, 5.1 mod -3, -5.1 mod 3, -5.1 mod -3;
  180. 5.1 mod 3 5.1 mod -3 -5.1 mod 3 -5.1 mod -3
  181. 2.1 2.1 -2.1 -2.1
  182. select 5 mod 3, 5 mod -3, -5 mod 3, -5 mod -3;
  183. 5 mod 3 5 mod -3 -5 mod 3 -5 mod -3
  184. 2 2 -2 -2
  185. create table t1 (a int, b int);
  186. insert into t1 values (1,2), (2,3), (3,4), (4,5);
  187. select * from t1 where a not between 1 and 2;
  188. a b
  189. 3 4
  190. 4 5
  191. select * from t1 where a not between 1 and 2 and b not between 3 and 4;
  192. a b
  193. 4 5
  194. drop table t1;
  195. SELECT GREATEST(1,NULL) FROM DUAL;
  196. GREATEST(1,NULL)
  197. NULL
  198. SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL;
  199. LEAST('xxx','aaa',NULL,'yyy')
  200. NULL
  201. SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL;
  202. LEAST(1.1,1.2,NULL,1.0)
  203. NULL
  204. SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL;
  205. GREATEST(1.5E+2,1.3E+2,NULL)
  206. NULL