diff --git a/mysql/functions.go b/mysql/functions.go index 347b433..6d8193d 100644 --- a/mysql/functions.go +++ b/mysql/functions.go @@ -253,8 +253,3 @@ var EXISTS = jet.EXISTS // CASE create CASE operator with optional list of expressions var CASE = jet.CASE - -//----------------- Bit operators ---------------// - -// BIT_NOT inverts every bit in integer expression -var BIT_NOT = jet.BIT_NOT diff --git a/mysql/operators.go b/mysql/operators.go new file mode 100644 index 0000000..5585511 --- /dev/null +++ b/mysql/operators.go @@ -0,0 +1,9 @@ +package mysql + +import "github.com/go-jet/jet/v2/internal/jet" + +// NOT returns negation of bool expression result +var NOT = jet.NOT + +// BIT_NOT inverts every bit in integer expression result +var BIT_NOT = jet.BIT_NOT diff --git a/mysql/select_statement_test.go b/mysql/select_statement_test.go index 261ac20..2312a60 100644 --- a/mysql/select_statement_test.go +++ b/mysql/select_statement_test.go @@ -132,3 +132,25 @@ FROM db.table1 LOCK IN SHARE MODE; `) } + +func TestSelect_NOT_EXISTS(t *testing.T) { + testutils.AssertStatementSql(t, + SELECT(table1ColInt). + FROM(table1). + WHERE( + NOT(EXISTS( + SELECT(table2ColInt). + FROM(table2). + WHERE( + table1ColInt.EQ(table2ColInt), + ), + ))), ` +SELECT table1.col_int AS "table1.col_int" +FROM db.table1 +WHERE (NOT (EXISTS ( + SELECT table2.col_int AS "table2.col_int" + FROM db.table2 + WHERE table1.col_int = table2.col_int + ))); +`) +}