|
|
|
|
@@ -2700,6 +2700,14 @@ a b c d
|
|
|
|
|
1 2 2 1
|
|
|
|
|
1 2 3 1
|
|
|
|
|
DROP TABLE IF EXISTS t1, t2;
|
|
|
|
|
create table t1 (f1 int primary key, f2 int);
|
|
|
|
|
create table t2 (f3 int, f4 int, primary key(f3,f4));
|
|
|
|
|
insert into t1 values (1,1);
|
|
|
|
|
insert into t2 values (1,1),(1,2);
|
|
|
|
|
select distinct count(f2) >0 from t1 left join t2 on f1=f3 group by f1;
|
|
|
|
|
count(f2) >0
|
|
|
|
|
1
|
|
|
|
|
drop table t1,t2;
|
|
|
|
|
CREATE TABLE t1 ( city char(30) );
|
|
|
|
|
INSERT INTO t1 VALUES ('London');
|
|
|
|
|
INSERT INTO t1 VALUES ('Paris');
|
|
|
|
|
@@ -2801,304 +2809,6 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
|
|
|
|
1 SIMPLE t2 ref a a 23 test.t1.a 2
|
|
|
|
|
DROP TABLE t1, t2;
|
|
|
|
|
CREATE TABLE t1 ( city char(30) );
|
|
|
|
|
INSERT INTO t1 VALUES ('London');
|
|
|
|
|
INSERT INTO t1 VALUES ('Paris');
|
|
|
|
|
SELECT * FROM t1 WHERE city='London';
|
|
|
|
|
city
|
|
|
|
|
London
|
|
|
|
|
SELECT * FROM t1 WHERE city='london';
|
|
|
|
|
city
|
|
|
|
|
London
|
|
|
|
|
EXPLAIN SELECT * FROM t1 WHERE city='London' AND city='london';
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
|
|
|
|
SELECT * FROM t1 WHERE city='London' AND city='london';
|
|
|
|
|
city
|
|
|
|
|
London
|
|
|
|
|
EXPLAIN SELECT * FROM t1 WHERE city LIKE '%london%' AND city='London';
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
|
|
|
|
SELECT * FROM t1 WHERE city LIKE '%london%' AND city='London';
|
|
|
|
|
city
|
|
|
|
|
London
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
create table t1 (a int(11) unsigned, b int(11) unsigned);
|
|
|
|
|
insert into t1 values (1,0), (1,1), (1,2);
|
|
|
|
|
select a-b from t1 order by 1;
|
|
|
|
|
a-b
|
|
|
|
|
0
|
|
|
|
|
1
|
|
|
|
|
18446744073709551615
|
|
|
|
|
select a-b , (a-b < 0) from t1 order by 1;
|
|
|
|
|
a-b (a-b < 0)
|
|
|
|
|
0 0
|
|
|
|
|
1 0
|
|
|
|
|
18446744073709551615 0
|
|
|
|
|
select a-b as d, (a-b >= 0), b from t1 group by b having d >= 0;
|
|
|
|
|
d (a-b >= 0) b
|
|
|
|
|
1 1 0
|
|
|
|
|
0 1 1
|
|
|
|
|
18446744073709551615 1 2
|
|
|
|
|
select cast((a - b) as unsigned) from t1 order by 1;
|
|
|
|
|
cast((a - b) as unsigned)
|
|
|
|
|
0
|
|
|
|
|
1
|
|
|
|
|
18446744073709551615
|
|
|
|
|
drop table t1;
|
|
|
|
|
create table t1 (a int(11));
|
|
|
|
|
select all all * from t1;
|
|
|
|
|
a
|
|
|
|
|
select distinct distinct * from t1;
|
|
|
|
|
a
|
|
|
|
|
select all distinct * from t1;
|
|
|
|
|
ERROR HY000: Incorrect usage of ALL and DISTINCT
|
|
|
|
|
select distinct all * from t1;
|
|
|
|
|
ERROR HY000: Incorrect usage of ALL and DISTINCT
|
|
|
|
|
drop table t1;
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
kunde_intern_id int(10) unsigned NOT NULL default '0',
|
|
|
|
|
kunde_id int(10) unsigned NOT NULL default '0',
|
|
|
|
|
FK_firma_id int(10) unsigned NOT NULL default '0',
|
|
|
|
|
aktuell enum('Ja','Nein') NOT NULL default 'Ja',
|
|
|
|
|
vorname varchar(128) NOT NULL default '',
|
|
|
|
|
nachname varchar(128) NOT NULL default '',
|
|
|
|
|
geloescht enum('Ja','Nein') NOT NULL default 'Nein',
|
|
|
|
|
firma varchar(128) NOT NULL default ''
|
|
|
|
|
);
|
|
|
|
|
INSERT INTO t1 VALUES
|
|
|
|
|
(3964,3051,1,'Ja','Vorname1','1Nachname','Nein','Print Schau XXXX'),
|
|
|
|
|
(3965,3051111,1,'Ja','Vorname1111','1111Nachname','Nein','Print Schau XXXX');
|
|
|
|
|
SELECT kunde_id ,FK_firma_id ,aktuell, vorname, nachname, geloescht FROM t1
|
|
|
|
|
WHERE
|
|
|
|
|
(
|
|
|
|
|
(
|
|
|
|
|
( '' != '' AND firma LIKE CONCAT('%', '', '%'))
|
|
|
|
|
OR
|
|
|
|
|
(vorname LIKE CONCAT('%', 'Vorname1', '%') AND
|
|
|
|
|
nachname LIKE CONCAT('%', '1Nachname', '%') AND
|
|
|
|
|
'Vorname1' != '' AND 'xxxx' != '')
|
|
|
|
|
)
|
|
|
|
|
AND
|
|
|
|
|
(
|
|
|
|
|
aktuell = 'Ja' AND geloescht = 'Nein' AND FK_firma_id = 2
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
;
|
|
|
|
|
kunde_id FK_firma_id aktuell vorname nachname geloescht
|
|
|
|
|
SELECT kunde_id ,FK_firma_id ,aktuell, vorname, nachname,
|
|
|
|
|
geloescht FROM t1
|
|
|
|
|
WHERE
|
|
|
|
|
(
|
|
|
|
|
(
|
|
|
|
|
aktuell = 'Ja' AND geloescht = 'Nein' AND FK_firma_id = 2
|
|
|
|
|
)
|
|
|
|
|
AND
|
|
|
|
|
(
|
|
|
|
|
( '' != '' AND firma LIKE CONCAT('%', '', '%') )
|
|
|
|
|
OR
|
|
|
|
|
( vorname LIKE CONCAT('%', 'Vorname1', '%') AND
|
|
|
|
|
nachname LIKE CONCAT('%', '1Nachname', '%') AND 'Vorname1' != '' AND
|
|
|
|
|
'xxxx' != '')
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
;
|
|
|
|
|
kunde_id FK_firma_id aktuell vorname nachname geloescht
|
|
|
|
|
SELECT COUNT(*) FROM t1 WHERE
|
|
|
|
|
( 0 OR (vorname LIKE '%Vorname1%' AND nachname LIKE '%1Nachname%' AND 1))
|
|
|
|
|
AND FK_firma_id = 2;
|
|
|
|
|
COUNT(*)
|
|
|
|
|
0
|
|
|
|
|
drop table t1;
|
|
|
|
|
CREATE TABLE t1 (b BIGINT(20) UNSIGNED NOT NULL, PRIMARY KEY (b));
|
|
|
|
|
INSERT INTO t1 VALUES (0x8000000000000000);
|
|
|
|
|
SELECT b FROM t1 WHERE b=0x8000000000000000;
|
|
|
|
|
b
|
|
|
|
|
9223372036854775808
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
CREATE TABLE `t1` ( `gid` int(11) default NULL, `uid` int(11) default NULL);
|
|
|
|
|
CREATE TABLE `t2` ( `ident` int(11) default NULL, `level` char(16) default NULL);
|
|
|
|
|
INSERT INTO `t2` VALUES (0,'READ');
|
|
|
|
|
CREATE TABLE `t3` ( `id` int(11) default NULL, `name` char(16) default NULL);
|
|
|
|
|
INSERT INTO `t3` VALUES (1,'fs');
|
|
|
|
|
select * from t3 left join t1 on t3.id = t1.uid, t2 where t2.ident in (0, t1.gid, t3.id, 0);
|
|
|
|
|
id name gid uid ident level
|
|
|
|
|
1 fs NULL NULL 0 READ
|
|
|
|
|
drop table t1,t2,t3;
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
acct_id int(11) NOT NULL default '0',
|
|
|
|
|
profile_id smallint(6) default NULL,
|
|
|
|
|
UNIQUE KEY t1$acct_id (acct_id),
|
|
|
|
|
KEY t1$profile_id (profile_id)
|
|
|
|
|
);
|
|
|
|
|
INSERT INTO t1 VALUES (132,17),(133,18);
|
|
|
|
|
CREATE TABLE t2 (
|
|
|
|
|
profile_id smallint(6) default NULL,
|
|
|
|
|
queue_id int(11) default NULL,
|
|
|
|
|
seq int(11) default NULL,
|
|
|
|
|
KEY t2$queue_id (queue_id)
|
|
|
|
|
);
|
|
|
|
|
INSERT INTO t2 VALUES (17,31,4),(17,30,3),(17,36,2),(17,37,1);
|
|
|
|
|
CREATE TABLE t3 (
|
|
|
|
|
id int(11) NOT NULL default '0',
|
|
|
|
|
qtype int(11) default NULL,
|
|
|
|
|
seq int(11) default NULL,
|
|
|
|
|
warn_lvl int(11) default NULL,
|
|
|
|
|
crit_lvl int(11) default NULL,
|
|
|
|
|
rr1 tinyint(4) NOT NULL default '0',
|
|
|
|
|
rr2 int(11) default NULL,
|
|
|
|
|
default_queue tinyint(4) NOT NULL default '0',
|
|
|
|
|
KEY t3$qtype (qtype),
|
|
|
|
|
KEY t3$id (id)
|
|
|
|
|
);
|
|
|
|
|
INSERT INTO t3 VALUES (30,1,29,NULL,NULL,0,NULL,0),(31,1,28,NULL,NULL,0,NULL,0),
|
|
|
|
|
(36,1,34,NULL,NULL,0,NULL,0),(37,1,35,NULL,NULL,0,121,0);
|
|
|
|
|
SELECT COUNT(*) FROM t1 a STRAIGHT_JOIN t2 pq STRAIGHT_JOIN t3 q
|
|
|
|
|
WHERE
|
|
|
|
|
(pq.profile_id = a.profile_id) AND (a.acct_id = 132) AND
|
|
|
|
|
(pq.queue_id = q.id) AND (q.rr1 <> 1);
|
|
|
|
|
COUNT(*)
|
|
|
|
|
4
|
|
|
|
|
drop table t1,t2,t3;
|
|
|
|
|
create table t1 (f1 int);
|
|
|
|
|
insert into t1 values (1),(NULL);
|
|
|
|
|
create table t2 (f2 int, f3 int, f4 int);
|
|
|
|
|
create index idx1 on t2 (f4);
|
|
|
|
|
insert into t2 values (1,2,3),(2,4,6);
|
|
|
|
|
select A.f2 from t1 left join t2 A on A.f2 = f1 where A.f3=(select min(f3)
|
|
|
|
|
from t2 C where A.f4 = C.f4) or A.f3 IS NULL;
|
|
|
|
|
f2
|
|
|
|
|
1
|
|
|
|
|
NULL
|
|
|
|
|
drop table t1,t2;
|
|
|
|
|
create table t2 (a tinyint unsigned);
|
|
|
|
|
create index t2i on t2(a);
|
|
|
|
|
insert into t2 values (0), (254), (255);
|
|
|
|
|
explain select * from t2 where a > -1;
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE t2 index t2i t2i 2 NULL 3 Using where; Using index
|
|
|
|
|
select * from t2 where a > -1;
|
|
|
|
|
a
|
|
|
|
|
0
|
|
|
|
|
254
|
|
|
|
|
255
|
|
|
|
|
drop table t2;
|
|
|
|
|
CREATE TABLE t1 (a int, b int, c int);
|
|
|
|
|
INSERT INTO t1
|
|
|
|
|
SELECT 50, 3, 3 FROM DUAL
|
|
|
|
|
WHERE NOT EXISTS
|
|
|
|
|
(SELECT * FROM t1 WHERE a = 50 AND b = 3);
|
|
|
|
|
SELECT * FROM t1;
|
|
|
|
|
a b c
|
|
|
|
|
50 3 3
|
|
|
|
|
INSERT INTO t1
|
|
|
|
|
SELECT 50, 3, 3 FROM DUAL
|
|
|
|
|
WHERE NOT EXISTS
|
|
|
|
|
(SELECT * FROM t1 WHERE a = 50 AND b = 3);
|
|
|
|
|
select found_rows();
|
|
|
|
|
found_rows()
|
|
|
|
|
0
|
|
|
|
|
SELECT * FROM t1;
|
|
|
|
|
a b c
|
|
|
|
|
50 3 3
|
|
|
|
|
select count(*) from t1;
|
|
|
|
|
count(*)
|
|
|
|
|
1
|
|
|
|
|
select found_rows();
|
|
|
|
|
found_rows()
|
|
|
|
|
1
|
|
|
|
|
select count(*) from t1 limit 2,3;
|
|
|
|
|
count(*)
|
|
|
|
|
select found_rows();
|
|
|
|
|
found_rows()
|
|
|
|
|
0
|
|
|
|
|
select SQL_CALC_FOUND_ROWS count(*) from t1 limit 2,3;
|
|
|
|
|
count(*)
|
|
|
|
|
select found_rows();
|
|
|
|
|
found_rows()
|
|
|
|
|
1
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
CREATE TABLE t1 (a INT, b INT);
|
|
|
|
|
(SELECT a, b AS c FROM t1) ORDER BY c+1;
|
|
|
|
|
a c
|
|
|
|
|
(SELECT a, b AS c FROM t1) ORDER BY b+1;
|
|
|
|
|
a c
|
|
|
|
|
SELECT a, b AS c FROM t1 ORDER BY c+1;
|
|
|
|
|
a c
|
|
|
|
|
SELECT a, b AS c FROM t1 ORDER BY b+1;
|
|
|
|
|
a c
|
|
|
|
|
drop table t1;
|
|
|
|
|
create table t1(f1 int, f2 int);
|
|
|
|
|
create table t2(f3 int);
|
|
|
|
|
select f1 from t1,t2 where f1=f2 and (f1,f2) = ((1,1));
|
|
|
|
|
f1
|
|
|
|
|
select f1 from t1,t2 where f1=f2 and (f1,NULL) = ((1,1));
|
|
|
|
|
f1
|
|
|
|
|
select f1 from t1,t2 where f1=f2 and (f1,f2) = ((1,NULL));
|
|
|
|
|
f1
|
|
|
|
|
insert into t1 values(1,1),(2,null);
|
|
|
|
|
insert into t2 values(2);
|
|
|
|
|
select * from t1,t2 where f1=f3 and (f1,f2) = (2,null);
|
|
|
|
|
f1 f2 f3
|
|
|
|
|
select * from t1,t2 where f1=f3 and (f1,f2) <=> (2,null);
|
|
|
|
|
f1 f2 f3
|
|
|
|
|
2 NULL 2
|
|
|
|
|
drop table t1,t2;
|
|
|
|
|
create table t1 (f1 int not null auto_increment primary key, f2 varchar(10));
|
|
|
|
|
create table t11 like t1;
|
|
|
|
|
insert into t1 values(1,""),(2,"");
|
|
|
|
|
show table status like 't1%';
|
|
|
|
|
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
|
|
|
|
|
t1 MyISAM 9 Dynamic 2 20 X X X X X X X X latin1_swedish_ci NULL
|
|
|
|
|
t11 MyISAM 9 Dynamic 0 0 X X X X X X X X latin1_swedish_ci NULL
|
|
|
|
|
select 123 as a from t1 where f1 is null;
|
|
|
|
|
a
|
|
|
|
|
drop table t1,t11;
|
|
|
|
|
CREATE TABLE t1 (a INT, b INT);
|
|
|
|
|
(SELECT a, b AS c FROM t1) ORDER BY c+1;
|
|
|
|
|
a c
|
|
|
|
|
(SELECT a, b AS c FROM t1) ORDER BY b+1;
|
|
|
|
|
a c
|
|
|
|
|
SELECT a, b AS c FROM t1 ORDER BY c+1;
|
|
|
|
|
a c
|
|
|
|
|
SELECT a, b AS c FROM t1 ORDER BY b+1;
|
|
|
|
|
a c
|
|
|
|
|
drop table t1;
|
|
|
|
|
CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL, UNIQUE idx (a,b) );
|
|
|
|
|
INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4);
|
|
|
|
|
CREATE TABLE t2 ( a INT NOT NULL, b INT NOT NULL, c INT );
|
|
|
|
|
INSERT INTO t2 VALUES ( 1,10,1), (1,10,2), (1,11,1), (1,11,2), (1,2,1), (1,2,2),
|
|
|
|
|
(1,2,3);
|
|
|
|
|
SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
|
|
|
|
|
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY a, b, c;
|
|
|
|
|
a b c d
|
|
|
|
|
1 2 1 1
|
|
|
|
|
1 2 2 1
|
|
|
|
|
1 2 3 1
|
|
|
|
|
1 10 2
|
|
|
|
|
1 11 2
|
|
|
|
|
SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
|
|
|
|
|
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY t1.a, t1.b, c;
|
|
|
|
|
a b c d
|
|
|
|
|
1 10 4
|
|
|
|
|
1 2 1 1
|
|
|
|
|
1 2 2 1
|
|
|
|
|
1 2 3 1
|
|
|
|
|
SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2 LEFT JOIN
|
|
|
|
|
t1 ON t2.a = t1.a AND t2.b = t1.b GROUP BY t2.a, t2.b, c;
|
|
|
|
|
a b c d
|
|
|
|
|
1 2 1 1
|
|
|
|
|
1 2 2 1
|
|
|
|
|
1 2 3 1
|
|
|
|
|
1 10 2
|
|
|
|
|
1 11 2
|
|
|
|
|
SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2,t1
|
|
|
|
|
WHERE t2.a = t1.a AND t2.b = t1.b GROUP BY a, b, c;
|
|
|
|
|
a b c d
|
|
|
|
|
1 2 1 1
|
|
|
|
|
1 2 2 1
|
|
|
|
|
1 2 3 1
|
|
|
|
|
DROP TABLE IF EXISTS t1, t2;
|
|
|
|
|
create table t1 (a int, b int);
|
|
|
|
|
create table t2 like t1;
|
|
|
|
|
select t1.a from (t1 inner join t2 on t1.a=t2.a) where t2.a=1;
|
|
|
|
|
@@ -3478,14 +3188,6 @@ select count(*)
|
|
|
|
|
from t1 inner join (t2 right join t3 on t2.id = t3.b_id) on t1.id = t3.a_id;
|
|
|
|
|
count(*)
|
|
|
|
|
6
|
|
|
|
|
create table t1 (f1 int primary key, f2 int);
|
|
|
|
|
create table t2 (f3 int, f4 int, primary key(f3,f4));
|
|
|
|
|
insert into t1 values (1,1);
|
|
|
|
|
insert into t2 values (1,1),(1,2);
|
|
|
|
|
select distinct count(f2) >0 from t1 left join t2 on f1=f3 group by f1;
|
|
|
|
|
count(f2) >0
|
|
|
|
|
1
|
|
|
|
|
drop table t1,t2;
|
|
|
|
|
drop table t1,t2,t3;
|
|
|
|
|
create table t1 (a int);
|
|
|
|
|
create table t2 (b int);
|
|
|
|
|
|