SQL_Select
extends SQL_Where
in package
uses
SQL_Trait_Union, SQL_Trait_Group, SQL_Trait_Limit, SQL_Trait_Order, SQL_Trait_Having
SQL_Select
SQLヘルパのSelectメソッド群です。
メソッドの外で,条件対象のテーブルが選択されている必要があります
Table of Contents
Properties
- $_fdOrders : SQL_Field, values: array}|null
- $_groups : array<string|int, SQL_Field>
- $_havings : array<string|int, SQL|string, glue: "AND"|"OR"}>
- $_innerJoins : array<string|int, SQL_Where|null}>
- $_leftJoins : array<string|int, SQL_Where|null}>
- $_limit : array{limit: int, offset: int}|null
- $_orders : array<string|int, SQL_Field}>
- $_selects : array<string|int, SQL_Field_Function, alias: string|null}>
- $_straightJoin : bool
- $_tables : array<string|int, SQL_Field|string, alias: string|null}>
- $_union : array<string|int, SQL_Select>
- $_wheres : array<string|int, SQL|string|int, glue: "AND"|"OR"}>
- $connection : Connection
- $result : mixed
Methods
- __construct() : mixed
-
_join()
: array{sql: string, params: list|array
}|null - LEFT JOIN句を生成する
- addGeoDistance() : true
- addGroup() : true
- 指定されたfieldでGROUP BY句を生成する<br> $SQL->addGroup('blog_id', 'acms_blog');<br> GROUP BY acms_blog.blog_id
- addHaving() : true
- 指定された条件式でHAVING句を生成する<br> $SQL->addHaving('entry_id > 5', 'AND');<br> HAVING ( 1 AND entry_id > 5 )
- addInnerJoin() : true
- 指定されたtableと条件からINNER JOIN句を生成する。<br> $SQL->addInnerJoin('category', 'category_id', 'entry_category_id', 'category', 'acms_entry');<br> INNER JOIN acms_category AS category ON category.category_id = entry.entry_category_id
- addLeftJoin() : true
- 指定されたtableと条件からtableを結合する。<br> $SQL->addLeftJoin('category', 'category_id', 'entry_category_id', 'category', 'entry');<br> LEFT JOIN acms_category AS category ON category.category_id = entry.entry_category_id
- addOrder() : true
- 指定されたfieldでORDER BY句を生成する<br> $SQL->addOrder('entry_id', 'ASC', 'acms_entry');<br> ORDER BY acms_entry.entry_id ASC
- addSelect() : true
- 指定されたfieldを追加する。<br> $SQL->addSelect('entry_id', 'entry_count', 'acms_entry', 'count');<br> SELECT COUNT(acms_entry.entry_id) AS entry_count
- addTable() : true
- addUnion() : void
- addWhere() : mixed
- addWhereBw() : bool
- 指定されたfieldとvalue(2つ)からBETWEEN句を生成する。<br> $SQL->addWhereOpr('entry_id', 10, 20, 'AND', 'entry');<br> WHERE 1 AND entry.entry_id BETWEEN 100 AND 200
- addWhereExists() : true
- 指定されたSQL_SelectオブジェクトからEXISTS句を生成する。<br> $SQL->addWhereExists(SQL_SELECT);<br> WHERE 1 AND EXISTS (SELECT * ...)
- addWhereIn() : bool
- 指定されたfieldとvalue(配列)からIN句を生成する。<br> $SQL->addWhereIn('entry_id', array(10, 20, 30), 'AND', 'entry');<br> WHERE 1 AND entry.entry_id IN (10, 29, 30)
- addWhereNotExists() : true
- 指定されたSQL_SelectオブジェクトからNOT EXISTS句を生成する。<br> $SQL->addWhereExists(SQL_SELECT);<br> WHERE 1 AND NOT EXISTS (SELECT * ...)
- addWhereNotIn() : bool
- 指定されたfieldとvalue(配列)からNOT IN句を生成する。<br> $SQL->addWhereNotIn('entry_id', array(10, 20, 30), 'AND', 'entry');<br> WHERE 1 AND entry.entry_id NOT IN (10, 29, 30)
- addWhereOpr() : bool
- 指定されたfieldとvalueからWHERE句を生成する。<br> $SQL->addWhereOpr('entry_id', 10, '=', 'OR', 'entry', 'count');<br> WHERE 0 OR COUNT(entry.entry_id) = 10
- aliasPlaceholders() : array<string|int, mixed>
- SQL文中のプレースホルダーとparamsのキーにprefixをつける
-
currval()
: array{sql: string, params: list|array
} - 指定されたsequence fieldの現在のシーケンス番号を返す<br> SQL::currval('entry_id', dsn())<br> SELECT sequence_entry_id FROM acms_sequence
-
delete()
: array{sql: string, params: list|array
} - Where句を指定してDelete句を生成する為のSQL文を返す
- dumpSQL() : string
- プレースホルダ付きSQLとparams配列から、デバッグ用のSQLを生成する
-
get()
: array{sql: string, params: list|array
} - SQL文とパラメータを取得するメソッドです。
- getParams() : array<string, mixed>
- SQL文のパラメータを取得するメソッドです。
- getSQL() : string
- SQL文を取得するメソッドです。
- getWhereBw() : SQL_Field_Operator_Between, glue: "AND"|"OR"}
- 指定されたfieldとa, bからBETWEEN句を生成する。<br> $SQL->addWhereBw('entry_id', 10, 20, 'AND', 'entry', 'count');<br> WHERE 1 AND COUNT(entry.entry_id) BETWEEN 10 AND 20
- getWhereExists() : SQL_Field_Operator_Exists, glue: "AND"|"OR"}
- getWhereIn() : SQL_Field_Operator_In, glue: "AND"|"OR"}
- getWhereNotExists() : SQL_Field_Operator_Exists, glue: "AND"|"OR"}
- getWhereNotIn() : SQL_Field_Operator_In, glue: "AND"|"OR"}
- getWhereOpr() : SQL_Field_Operator, glue: "AND"|"OR"}
- group() : void
- Group By句を生成する
- isClass() : bool
- 第一引数の値が特定の クラス のオブジェクトのインスタンスであるかどうかを判定
- newBulkInsert() : SQL_BulkInsert
- TABLEを指定してINSERT句(バルク)を生成する為のSQL_BulkInsertを返す
- newCase() : SQL_Field_Case
- CASE文を作成するためのSQL_Field_Caseオブジェクトを生成する <br /> $case = SQL::newCase();<br> $case->add(SQL::newOpr('entry_status', 'draft' '='), '下書き');<br> $case->add(SQL::newOpr('entry_status', 'open' '='), '公開');<br> $case->add(SQL::newOpr('entry_status', 'close' '='), '非公開');<br> $case->setElse('下書き');<br> CASE<br> WHEN entry_status = 'draft' THEN '下書き'<br> WHEN entry_status = 'open' THEN '公開'<br> WHEN entry_status = 'close' THEN '非公開'<br> ELSE '下書き'
- newDelete() : SQL_Delete
- TABLEを指定してDELETE句を生成する為のSQL_Deleteを返す
- newField() : SQL_Field
- SQL_Fieldオブジェクトを生成する<br> SQL::newField('entry_title', 'entry')<br> entry.entry_title
- newFunction() : SQL_Field_Function
- 関数を生成するためのSQL_Field_Functionオブジェクトを生成する<br> $funcに配列を指定すると、添字0を関数名、添字1以降を関数の引数として渡される<br> SQL::newFunction('entry_title', ['SUBSTR', 0, 10])<br> SUBSTR(entry_title, 0, 10)<br>
- newGeometry() : SQL_Field_Function
- SQLのGeometry関数を作成するためのSQL_Field_Functionオブジェクトを生成する
- newInsert() : SQL_Insert
- TABLEを指定してINSERT句を生成する為のSQL_Insertを返す
- newInsertOrUpdate() : SQL_InsertOrUpdate
- TABLEを指定してINSERT ON DUPLICATE KEY UPDATE句を生成する為のSQL_InsertOrUpdateを返す
- newOpr() : mixed
- 演算子を生成するためのSQL_Field_Operatorオブジェクトを生成する<br> SQL::newOpr('entry_id', 1, '>')<br> entry_id > 1
- newOprBw() : SQL_Field_Operator_Between<string|int, T>
- BETWEEN演算子を作成するためのSQL_Field_Operator_Betweenオブジェクトを生成する<br> SQL::newOprBw('entry_id', 1, 10)<br> entry_id BETWEEN 1 AND 10
- newOprExists() : SQL_Field_Operator_Exists
- EXISTS演算子を作成するためのSQL_Field_Operator_Existsオブジェクトを生成する<br> SQL::newOprExists(SQL::newSelect('entry'))<br> EXISTS (SELECT * FROM acms_entry)
- newOprIn() : SQL_Field_Operator_In
- IN演算子を作成するためのSQL_Field_Operator_Inオブジェクトを生成する<br> SQL::newOprIn('entry_id', [1, 2, 3, 4, 5])<br> entry_id IN (1, 2, 3, 4, 5)
- newOprNotExists() : SQL_Field_Operator_Exists
- NOT EXISTS演算子を作成するためのSQL_Field_Operator_Existsオブジェクトを生成する <br> SQL::newOprExists(SQL::newSelect('entry'))<br> NOT EXISTS (SELECT * FROM acms_entry)
- newOprNotIn() : SQL_Field_Operator_In
- NOT IN演算子を作成するためのSQL_Field_Operator_Inオブジェクトを生成する<br> SQL::newOprNotIn('entry_id', [1, 2, 3, 4, 5])<br> entry_id NOT IN (1, 2, 3, 4, 5)
- newReplace() : SQL_Replace
- TABLEを指定してREPLACE句を生成する為のSQL_Replaceを返す
- newSelect() : SQL_Select
- TABLEを指定してSELECT句を生成する為のSQL_Selectを返す
- newSeq() : SQL_Sequence
- SQL_Sequenceオブジェクトを生成する
- newUpdate() : SQL_Update
- TABLEを指定してUPDATE句を生成する為のSQL_Updateを返す
- newWhere() : SQL_Where
- WHERE句を生成するためのSQL_Whereオブジェクトを生成する
-
nextval()
: array{sql: string, params: list|array
} - 指定されたsequence fieldのシーケンス番号を1進めてその値を返す<br> SQL::nextval('entry_id', dsn())<br> UPDATE acms_sequence SET sequence_entry_id = ( LAST_INSERT_ID(sequence_entry_id + 1) )
-
optimizeSeq()
: array{sql: string, params: list|array
} - 指定されたsequence fieldのシーケンス番号を最適化する<br> SQL::optimizeSeq('entry_id', dsn())<br> UPDATE acms_sequence SET sequence_entry_id = ( LAST_INSERT_ID(sequence_entry_id + 1) )
- quoteKey() : string
- SQL文のキーを安全に引用符で囲むメソッドです。
- safePlaceholder() : string
- プレースホルダ名を安全に生成する
- setConnection() : void
- データベース接続を設定するメソッドです。
- setFieldOrder() : void
- setGroup() : true
- setHaving() : true
- setInnerJoin() : true
- setLeftJoin() : true
- setLimit() : bool
- 指定された数のレコードを返す<br> $SQL->setLimit(30, 10);<br> LIMIT 10, 30
- setOrder() : true
- 指定されたorderのSQLを生成する<br> $SQL->setOrder('entry_id', 'ASC', 'acms_entry');<br> LIMIT 10, 30
- setSelect() : true
- setTable() : true
- setUnion() : void
-
setval()
: array{sql: string, params: list|array
} - 指定されたsequence fieldを指定された値にセットする<br> SQL::setval('entry_id', 10, dsn())<br> UPDATE acms_sequence SET sequence_entry_id = 10
- setWhere() : mixed
- showTable() : SQL_ShowTable
- TABLEを指定してSHOW TABLE句を生成する為のSQL_ShowTableを返す
- having() : array<string, mixed>
- Having句を生成する
-
join()
: array{sql: string, params: list|array
} - JOIN句を生成する
- limit() : void
- Limit句を生成する
- order() : void
- Order句を生成する
-
union()
: array{sql: string, params: list|array
}|null - UNION句を生成する
-
where()
: array{sql: string, params: list|array
}
Properties
$_fdOrders
public
SQL_Field, values: array}|null
$_fdOrders
= \null
$_groups
public
array<string|int, SQL_Field>
$_groups
= []
$_havings
public
array<string|int, SQL|string, glue: "AND"|"OR"}>
$_havings
= []
$_innerJoins
public
array<string|int, SQL_Where|null}>
$_innerJoins
= []
$_leftJoins
public
array<string|int, SQL_Where|null}>
$_leftJoins
= []
$_limit
public
array{limit: int, offset: int}|null
$_limit
= \null
$_orders
public
array<string|int, SQL_Field}>
$_orders
= []
$_selects
public
array<string|int, SQL_Field_Function, alias: string|null}>
$_selects
= []
$_straightJoin
public
bool
$_straightJoin
= \false
$_tables
public
array<string|int, SQL_Field|string, alias: string|null}>
$_tables
= []
$_union
public
array<string|int, SQL_Select>
$_union
= []
$_wheres
public
array<string|int, SQL|string|int, glue: "AND"|"OR"}>
$_wheres
= []
$connection
protected
static Connection
$connection
= \null
$result
protected
mixed
$result
= \null
Methods
__construct()
public
__construct([SQL|null $SQL = null ]) : mixed
Parameters
- $SQL : SQL|null = null
_join()
LEFT JOIN句を生成する
public
_join(array<string|int, mixed> $join[, string $joinType = "LEFT" ][, Dsn|null $dsn = null ]) : array{sql: string, params: list|array}|null
Parameters
- $join : array<string|int, mixed>
- $joinType : string = "LEFT"
- $dsn : Dsn|null = null
Return values
array{sql: string, params: list|arrayaddGeoDistance()
public
addGeoDistance(string $fd, string|float $lng, string|float $lat[, string|null $als = null ][, string|null $scp = null ]) : true
Parameters
- $fd : string
- $lng : string|float
- $lat : string|float
- $als : string|null = null
- $scp : string|null = null
Return values
trueaddGroup()
指定されたfieldでGROUP BY句を生成する<br> $SQL->addGroup('blog_id', 'acms_blog');<br> GROUP BY acms_blog.blog_id
public
addGroup(SQL_Field|string $fd[, string|null $scp = null ]) : true
Parameters
- $fd : SQL_Field|string
- $scp : string|null = null
Return values
trueaddHaving()
指定された条件式でHAVING句を生成する<br> $SQL->addHaving('entry_id > 5', 'AND');<br> HAVING ( 1 AND entry_id > 5 )
public
addHaving(SQL|string $h[, "AND"|"OR" $gl = 'AND' ]) : true
Parameters
- $h : SQL|string
- $gl : "AND"|"OR" = 'AND'
Return values
trueaddInnerJoin()
指定されたtableと条件からINNER JOIN句を生成する。<br> $SQL->addInnerJoin('category', 'category_id', 'entry_category_id', 'category', 'acms_entry');<br> INNER JOIN acms_category AS category ON category.category_id = entry.entry_category_id
public
addInnerJoin(SQL_Select|string $tb, SQL_Field|string $a, SQL_Field|string $b[, string|null $aScp = null ][, string|null $bScp = null ][, SQL_Where|null $where = null ]) : true
Parameters
- $tb : SQL_Select|string
- $a : SQL_Field|string
- $b : SQL_Field|string
- $aScp : string|null = null
- $bScp : string|null = null
- $where : SQL_Where|null = null
Return values
trueaddLeftJoin()
指定されたtableと条件からtableを結合する。<br> $SQL->addLeftJoin('category', 'category_id', 'entry_category_id', 'category', 'entry');<br> LEFT JOIN acms_category AS category ON category.category_id = entry.entry_category_id
public
addLeftJoin(SQL_Select|string $tb, SQL_Field|string $a, SQL_Field|string $b[, string|null $aScp = null ][, string|null $bScp = null ][, SQL_Where|null $where = null ]) : true
Parameters
- $tb : SQL_Select|string
- $a : SQL_Field|string
- $b : SQL_Field|string
- $aScp : string|null = null
- $bScp : string|null = null
- $where : SQL_Where|null = null
Return values
trueaddOrder()
指定されたfieldでORDER BY句を生成する<br> $SQL->addOrder('entry_id', 'ASC', 'acms_entry');<br> ORDER BY acms_entry.entry_id ASC
public
addOrder(SQL_Field|string $fd[, "ASC"|"DESC"|"asc"|"desc" $ord = 'ASC' ][, string|null $scp = null ]) : true
Parameters
- $fd : SQL_Field|string
- $ord : "ASC"|"DESC"|"asc"|"desc" = 'ASC'
- $scp : string|null = null
Return values
trueaddSelect()
指定されたfieldを追加する。<br> $SQL->addSelect('entry_id', 'entry_count', 'acms_entry', 'count');<br> SELECT COUNT(acms_entry.entry_id) AS entry_count
public
addSelect(SQL_Field|string $fd[, string|null $als = null ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : true
Parameters
- $fd : SQL_Field|string
- $als : string|null = null
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
trueaddTable()
public
addTable(SQL_Select|SQL_Field|string $tb[, string|null $als = null ][, bool $straight_join = false ]) : true
Parameters
- $tb : SQL_Select|SQL_Field|string
- $als : string|null = null
- $straight_join : bool = false
Return values
trueaddUnion()
public
addUnion(SQL_Select $select) : void
Parameters
- $select : SQL_Select
addWhere()
public
addWhere(SQL|string|int $w[, "AND"|"OR" $gl = 'AND' ]) : mixed
Parameters
- $w : SQL|string|int
- $gl : "AND"|"OR" = 'AND'
addWhereBw()
指定されたfieldとvalue(2つ)からBETWEEN句を生成する。<br> $SQL->addWhereOpr('entry_id', 10, 20, 'AND', 'entry');<br> WHERE 1 AND entry.entry_id BETWEEN 100 AND 200
public
addWhereBw(SQL_Field|string $fd, string|int $a, string|int $b[, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : bool
Parameters
- $fd : SQL_Field|string
- $a : string|int
- $b : string|int
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
booladdWhereExists()
指定されたSQL_SelectオブジェクトからEXISTS句を生成する。<br> $SQL->addWhereExists(SQL_SELECT);<br> WHERE 1 AND EXISTS (SELECT * ...)
public
addWhereExists(SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ]) : true
Parameters
- $vals : SQL_Select
- $gl : "AND"|"OR" = 'AND'
Return values
trueaddWhereIn()
指定されたfieldとvalue(配列)からIN句を生成する。<br> $SQL->addWhereIn('entry_id', array(10, 20, 30), 'AND', 'entry');<br> WHERE 1 AND entry.entry_id IN (10, 29, 30)
public
addWhereIn(SQL_Field|string $fd, array<string|int, mixed>|SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : bool
Parameters
- $fd : SQL_Field|string
- $vals : array<string|int, mixed>|SQL_Select
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
booladdWhereNotExists()
指定されたSQL_SelectオブジェクトからNOT EXISTS句を生成する。<br> $SQL->addWhereExists(SQL_SELECT);<br> WHERE 1 AND NOT EXISTS (SELECT * ...)
public
addWhereNotExists(SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ]) : true
Parameters
- $vals : SQL_Select
- $gl : "AND"|"OR" = 'AND'
Return values
trueaddWhereNotIn()
指定されたfieldとvalue(配列)からNOT IN句を生成する。<br> $SQL->addWhereNotIn('entry_id', array(10, 20, 30), 'AND', 'entry');<br> WHERE 1 AND entry.entry_id NOT IN (10, 29, 30)
public
addWhereNotIn(SQL_Field|string $fd, array<string|int, mixed>|SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : bool
Parameters
- $fd : SQL_Field|string
- $vals : array<string|int, mixed>|SQL_Select
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
booladdWhereOpr()
指定されたfieldとvalueからWHERE句を生成する。<br> $SQL->addWhereOpr('entry_id', 10, '=', 'OR', 'entry', 'count');<br> WHERE 0 OR COUNT(entry.entry_id) = 10
public
addWhereOpr(SQL_Field|string $fd, SQL_Field|string|int|float|null $val[, string $opr = '=' ][, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : bool
Parameters
- $fd : SQL_Field|string
- $val : SQL_Field|string|int|float|null
- $opr : string = '='
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
boolaliasPlaceholders()
SQL文中のプレースホルダーとparamsのキーにprefixをつける
public
static aliasPlaceholders(string $sql, array<string|int, mixed> $params, string $prefix) : array<string|int, mixed>
Parameters
- $sql : string
-
元のSQL文
- $params : array<string|int, mixed>
-
元のパラメータ(
:name→ 値) - $prefix : string
-
プレフィックス(例: 'when_0_')
Return values
array<string|int, mixed> —[$newSql, $newParams]
currval()
指定されたsequence fieldの現在のシーケンス番号を返す<br> SQL::currval('entry_id', dsn())<br> SELECT sequence_entry_id FROM acms_sequence
public
static currval(string|SQL_Sequence $seq[, Dsn|null $dsn = null ][, bool $plugin = false ]) : array{sql: string, params: list|array}
Parameters
- $seq : string|SQL_Sequence
- $dsn : Dsn|null = null
- $plugin : bool = false
Tags
Return values
array{sql: string, params: list|arraydelete()
Where句を指定してDelete句を生成する為のSQL文を返す
public
static delete(string|null $tb[, SQL_Where|null $w = null ][, Dsn|null $dsn = null ]) : array{sql: string, params: list|array}
未使用のため非推奨
Parameters
- $tb : string|null
- $w : SQL_Where|null = null
- $dsn : Dsn|null = null
Return values
array{sql: string, params: list|arraydumpSQL()
プレースホルダ付きSQLとparams配列から、デバッグ用のSQLを生成する
public
static dumpSQL(array{sql: string, params: list|array} $query) : string
Parameters
-
$query
: array{sql: string, params: list|array
}
Return values
stringget()
SQL文とパラメータを取得するメソッドです。
public
get([mixed $dsn = null ]) : array{sql: string, params: list|array}
Parameters
- $dsn : mixed = null
Tags
Return values
array{sql: string, params: list|arraygetParams()
SQL文のパラメータを取得するメソッドです。
public
getParams([Dsn|null $dsn = null ]) : array<string, mixed>
Parameters
- $dsn : Dsn|null = null
Return values
array<string, mixed>getSQL()
SQL文を取得するメソッドです。
public
getSQL([Dsn|null $dsn = null ]) : string
Parameters
- $dsn : Dsn|null = null
Return values
stringgetWhereBw()
指定されたfieldとa, bからBETWEEN句を生成する。<br> $SQL->addWhereBw('entry_id', 10, 20, 'AND', 'entry', 'count');<br> WHERE 1 AND COUNT(entry.entry_id) BETWEEN 10 AND 20
public
getWhereBw(SQL_Field|string $fd, string|int $a, string|int $b[, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : SQL_Field_Operator_Between, glue: "AND"|"OR"}
Parameters
- $fd : SQL_Field|string
- $a : string|int
- $b : string|int
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
SQL_Field_Operator_Between, glue: "AND"|"OR"}getWhereExists()
public
getWhereExists(SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ]) : SQL_Field_Operator_Exists, glue: "AND"|"OR"}
Parameters
- $vals : SQL_Select
- $gl : "AND"|"OR" = 'AND'
Return values
SQL_Field_Operator_Exists, glue: "AND"|"OR"}getWhereIn()
public
getWhereIn(SQL_Field|string $fd, array<string|int, mixed>|SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : SQL_Field_Operator_In, glue: "AND"|"OR"}
Parameters
- $fd : SQL_Field|string
- $vals : array<string|int, mixed>|SQL_Select
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
SQL_Field_Operator_In, glue: "AND"|"OR"}getWhereNotExists()
public
getWhereNotExists(SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ]) : SQL_Field_Operator_Exists, glue: "AND"|"OR"}
Parameters
- $vals : SQL_Select
- $gl : "AND"|"OR" = 'AND'
Return values
SQL_Field_Operator_Exists, glue: "AND"|"OR"}getWhereNotIn()
public
getWhereNotIn(SQL_Field|string $fd, array<string|int, mixed>|SQL_Select $vals[, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : SQL_Field_Operator_In, glue: "AND"|"OR"}
Parameters
- $fd : SQL_Field|string
- $vals : array<string|int, mixed>|SQL_Select
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
SQL_Field_Operator_In, glue: "AND"|"OR"}getWhereOpr()
public
getWhereOpr(SQL_Field|string $fd, SQL_Field|string|int|float|null $val[, string $opr = '=' ][, "AND"|"OR" $gl = 'AND' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : SQL_Field_Operator, glue: "AND"|"OR"}
Parameters
- $fd : SQL_Field|string
- $val : SQL_Field|string|int|float|null
- $opr : string = '='
- $gl : "AND"|"OR" = 'AND'
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
SQL_Field_Operator, glue: "AND"|"OR"}group()
Group By句を生成する
public
group(QueryBuilder $qb[, Dsn|null $dsn = null ]) : void
Parameters
- $qb : QueryBuilder
- $dsn : Dsn|null = null
isClass()
第一引数の値が特定の クラス のオブジェクトのインスタンスであるかどうかを判定
public
static isClass(mixed $obj, T> $className) : bool
Parameters
- $obj : mixed
- $className : T>
Tags
Return values
boolnewBulkInsert()
TABLEを指定してINSERT句(バルク)を生成する為のSQL_BulkInsertを返す
public
static newBulkInsert([string|null $tb = null ]) : SQL_BulkInsert
Parameters
- $tb : string|null = null
Tags
Return values
SQL_BulkInsertnewCase()
CASE文を作成するためのSQL_Field_Caseオブジェクトを生成する <br /> $case = SQL::newCase();<br> $case->add(SQL::newOpr('entry_status', 'draft' '='), '下書き');<br> $case->add(SQL::newOpr('entry_status', 'open' '='), '公開');<br> $case->add(SQL::newOpr('entry_status', 'close' '='), '非公開');<br> $case->setElse('下書き');<br> CASE<br> WHEN entry_status = 'draft' THEN '下書き'<br> WHEN entry_status = 'open' THEN '公開'<br> WHEN entry_status = 'close' THEN '非公開'<br> ELSE '下書き'
public
static newCase([SQL|string|null $simple = null ]) : SQL_Field_Case
Parameters
- $simple : SQL|string|null = null
-
単純CASE文を作成する場合はSQLオブジェクトまたは文字列を指定する
Return values
SQL_Field_CasenewDelete()
TABLEを指定してDELETE句を生成する為のSQL_Deleteを返す
public
static newDelete([string|null $tb = null ]) : SQL_Delete
Parameters
- $tb : string|null = null
Tags
Return values
SQL_DeletenewField()
SQL_Fieldオブジェクトを生成する<br> SQL::newField('entry_title', 'entry')<br> entry.entry_title
public
static newField(SQL_Field|string|int $fd[, string|null $scp = null ][, bool $quote = true ]) : SQL_Field
Parameters
- $fd : SQL_Field|string|int
- $scp : string|null = null
- $quote : bool = true
Return values
SQL_FieldnewFunction()
関数を生成するためのSQL_Field_Functionオブジェクトを生成する<br> $funcに配列を指定すると、添字0を関数名、添字1以降を関数の引数として渡される<br> SQL::newFunction('entry_title', ['SUBSTR', 0, 10])<br> SUBSTR(entry_title, 0, 10)<br>
public
static newFunction(SQL_Field|string|int|null $fd[, array<string|int, mixed>|string|null $func = null ][, string|null $scp = null ][, bool $quote = true ]) : SQL_Field_Function
$funcに文字列を指定すると、その文字列が関数名として渡される
SQL::newFunction('entry_id', 'COUNT')
COUNT(entry_id)
Parameters
- $fd : SQL_Field|string|int|null
- $func : array<string|int, mixed>|string|null = null
- $scp : string|null = null
- $quote : bool = true
Return values
SQL_Field_FunctionnewGeometry()
SQLのGeometry関数を作成するためのSQL_Field_Functionオブジェクトを生成する
public
static newGeometry(float|string $lat, float|string $lng[, string|null $scp = null ]) : SQL_Field_Function
Parameters
- $lat : float|string
- $lng : float|string
- $scp : string|null = null
Return values
SQL_Field_FunctionnewInsert()
TABLEを指定してINSERT句を生成する為のSQL_Insertを返す
public
static newInsert([string|null $tb = null ]) : SQL_Insert
Parameters
- $tb : string|null = null
Tags
Return values
SQL_InsertnewInsertOrUpdate()
TABLEを指定してINSERT ON DUPLICATE KEY UPDATE句を生成する為のSQL_InsertOrUpdateを返す
public
static newInsertOrUpdate([string|null $tb = null ][, string|null $als = null ]) : SQL_InsertOrUpdate
Parameters
- $tb : string|null = null
- $als : string|null = null
Tags
Return values
SQL_InsertOrUpdatenewOpr()
演算子を生成するためのSQL_Field_Operatorオブジェクトを生成する<br> SQL::newOpr('entry_id', 1, '>')<br> entry_id > 1
public
static newOpr(string|SQL_Field $fd[, SQL_Field|string|int|float|null $val = null ][, string $opr = '=' ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : mixed
Parameters
newOprBw()
BETWEEN演算子を作成するためのSQL_Field_Operator_Betweenオブジェクトを生成する<br> SQL::newOprBw('entry_id', 1, 10)<br> entry_id BETWEEN 1 AND 10
public
static newOprBw(string|SQL_Field $fd, T $a, T $b[, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : SQL_Field_Operator_Between<string|int, T>
Parameters
- $fd : string|SQL_Field
- $a : T
-
文字列(日付型の文字列)または数値
- $b : T
-
文字列(日付型の文字列)または数値
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Tags
Return values
SQL_Field_Operator_Between<string|int, T>newOprExists()
EXISTS演算子を作成するためのSQL_Field_Operator_Existsオブジェクトを生成する<br> SQL::newOprExists(SQL::newSelect('entry'))<br> EXISTS (SELECT * FROM acms_entry)
public
static newOprExists(SQL_Select $val[, string|null $scp = null ]) : SQL_Field_Operator_Exists
Parameters
- $val : SQL_Select
- $scp : string|null = null
Return values
SQL_Field_Operator_ExistsnewOprIn()
IN演算子を作成するためのSQL_Field_Operator_Inオブジェクトを生成する<br> SQL::newOprIn('entry_id', [1, 2, 3, 4, 5])<br> entry_id IN (1, 2, 3, 4, 5)
public
static newOprIn(string|SQL_Field $fd, array<string|int, mixed>|SQL_Select $val[, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : SQL_Field_Operator_In
Parameters
- $fd : string|SQL_Field
- $val : array<string|int, mixed>|SQL_Select
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
SQL_Field_Operator_InnewOprNotExists()
NOT EXISTS演算子を作成するためのSQL_Field_Operator_Existsオブジェクトを生成する <br> SQL::newOprExists(SQL::newSelect('entry'))<br> NOT EXISTS (SELECT * FROM acms_entry)
public
static newOprNotExists(SQL_Select $val[, string|null $scp = null ]) : SQL_Field_Operator_Exists
Parameters
- $val : SQL_Select
- $scp : string|null = null
Return values
SQL_Field_Operator_ExistsnewOprNotIn()
NOT IN演算子を作成するためのSQL_Field_Operator_Inオブジェクトを生成する<br> SQL::newOprNotIn('entry_id', [1, 2, 3, 4, 5])<br> entry_id NOT IN (1, 2, 3, 4, 5)
public
static newOprNotIn(string|SQL_Field $fd, array<string|int, mixed>|SQL_Select $val[, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : SQL_Field_Operator_In
Parameters
- $fd : string|SQL_Field
- $val : array<string|int, mixed>|SQL_Select
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
SQL_Field_Operator_InnewReplace()
TABLEを指定してREPLACE句を生成する為のSQL_Replaceを返す
public
static newReplace([string|null $tb = null ]) : SQL_Replace
Parameters
- $tb : string|null = null
Tags
Return values
SQL_ReplacenewSelect()
TABLEを指定してSELECT句を生成する為のSQL_Selectを返す
public
static newSelect([SQL_Select|SQL_Field|string|null $tb = null ][, string|null $als = null ][, bool $straight_join = false ]) : SQL_Select
Parameters
- $tb : SQL_Select|SQL_Field|string|null = null
- $als : string|null = null
- $straight_join : bool = false
Tags
Return values
SQL_SelectnewSeq()
SQL_Sequenceオブジェクトを生成する
public
static newSeq(string $seq[, "nextval"|"currval"|"setval"|"optimize" $method = 'nextval' ][, int|null $val = null ]) : SQL_Sequence
Parameters
- $seq : string
-
シーケンス名 例: entry_id, blog_id, category_id, user_id
- $method : "nextval"|"currval"|"setval"|"optimize" = 'nextval'
-
メソッド名 例: nextval, currval, setval, optimize
- $val : int|null = null
Return values
SQL_SequencenewUpdate()
TABLEを指定してUPDATE句を生成する為のSQL_Updateを返す
public
static newUpdate([string|null $tb = null ]) : SQL_Update
Parameters
- $tb : string|null = null
Tags
Return values
SQL_UpdatenewWhere()
WHERE句を生成するためのSQL_Whereオブジェクトを生成する
public
static newWhere() : SQL_Where
Return values
SQL_Wherenextval()
指定されたsequence fieldのシーケンス番号を1進めてその値を返す<br> SQL::nextval('entry_id', dsn())<br> UPDATE acms_sequence SET sequence_entry_id = ( LAST_INSERT_ID(sequence_entry_id + 1) )
public
static nextval(string|SQL_Sequence $seq[, Dsn|null $dsn = null ][, mixed $plugin = false ]) : array{sql: string, params: list|array}
Parameters
- $seq : string|SQL_Sequence
- $dsn : Dsn|null = null
- $plugin : mixed = false
Tags
Return values
array{sql: string, params: list|arrayoptimizeSeq()
指定されたsequence fieldのシーケンス番号を最適化する<br> SQL::optimizeSeq('entry_id', dsn())<br> UPDATE acms_sequence SET sequence_entry_id = ( LAST_INSERT_ID(sequence_entry_id + 1) )
public
static optimizeSeq(string|SQL_Sequence $seq[, Dsn|null $dsn = null ][, bool $plugin = false ]) : array{sql: string, params: list|array}
Parameters
- $seq : string|SQL_Sequence
- $dsn : Dsn|null = null
- $plugin : bool = false
Tags
Return values
array{sql: string, params: list|arrayquoteKey()
SQL文のキーを安全に引用符で囲むメソッドです。
public
static quoteKey(string $key) : string
Parameters
- $key : string
Return values
stringsafePlaceholder()
プレースホルダ名を安全に生成する
public
static safePlaceholder(string $keyName[, string|null $suffix = null ]) : string
Parameters
- $keyName : string
-
任意のキー名(例: 'user-id.1')
- $suffix : string|null = null
-
一意性のための接尾語(例: '0')
Return values
stringsetConnection()
データベース接続を設定するメソッドです。
public
static setConnection(Connection $connection) : void
Parameters
- $connection : Connection
setFieldOrder()
public
setFieldOrder([SQL_Field|string|null $fd = null ][, array<string|int, mixed> $values = [] ][, string|null $scp = null ]) : void
Parameters
- $fd : SQL_Field|string|null = null
- $values : array<string|int, mixed> = []
- $scp : string|null = null
setGroup()
public
setGroup([SQL_Field|string|null $fd = null ][, string|null $scp = null ]) : true
Parameters
- $fd : SQL_Field|string|null = null
- $scp : string|null = null
Return values
truesetHaving()
public
setHaving([SQL|string|null $h = null ][, "AND"|"OR" $gl = 'AND' ]) : true
Parameters
- $h : SQL|string|null = null
- $gl : "AND"|"OR" = 'AND'
Return values
truesetInnerJoin()
public
setInnerJoin([SQL_Select|string|null $tb = null ][, string|null $a = null ][, string|null $b = null ][, string|null $als = null ][, string|null $scp = null ]) : true
Parameters
- $tb : SQL_Select|string|null = null
- $a : string|null = null
- $b : string|null = null
- $als : string|null = null
- $scp : string|null = null
Return values
truesetLeftJoin()
public
setLeftJoin([SQL_Select|string|null $tb = null ][, SQL_Field|string|null $a = null ][, SQL_Field|string|null $b = null ][, string|null $aScp = null ][, string|null $bScp = null ][, SQL_Where|null $where = null ]) : true
Parameters
- $tb : SQL_Select|string|null = null
- $a : SQL_Field|string|null = null
- $b : SQL_Field|string|null = null
- $aScp : string|null = null
- $bScp : string|null = null
- $where : SQL_Where|null = null
Return values
truesetLimit()
指定された数のレコードを返す<br> $SQL->setLimit(30, 10);<br> LIMIT 10, 30
public
setLimit(int $lmt[, int $off = 0 ]) : bool
Parameters
- $lmt : int
- $off : int = 0
Return values
boolsetOrder()
指定されたorderのSQLを生成する<br> $SQL->setOrder('entry_id', 'ASC', 'acms_entry');<br> LIMIT 10, 30
public
setOrder([SQL_Field|string|null $fd = null ][, "ASC"|"DESC"|"asc"|"desc" $ord = 'ASC' ][, string|null $scp = null ]) : true
Parameters
- $fd : SQL_Field|string|null = null
- $ord : "ASC"|"DESC"|"asc"|"desc" = 'ASC'
- $scp : string|null = null
Return values
truesetSelect()
public
setSelect([SQL_Field|string|null $fd = null ][, string|null $als = null ][, string|null $scp = null ][, array<string|int, mixed>|string|null $func = null ]) : true
Parameters
- $fd : SQL_Field|string|null = null
- $als : string|null = null
- $scp : string|null = null
- $func : array<string|int, mixed>|string|null = null
Return values
truesetTable()
public
setTable([SQL_Select|SQL_Field|string|null $tb = null ][, string|null $als = null ][, bool $straight_join = false ]) : true
Parameters
- $tb : SQL_Select|SQL_Field|string|null = null
- $als : string|null = null
- $straight_join : bool = false
Return values
truesetUnion()
public
setUnion(array<string|int, SQL_Select> $selects) : void
Parameters
- $selects : array<string|int, SQL_Select>
setval()
指定されたsequence fieldを指定された値にセットする<br> SQL::setval('entry_id', 10, dsn())<br> UPDATE acms_sequence SET sequence_entry_id = 10
public
static setval(string|SQL_Sequence $seq, int $val[, Dsn|null $dsn = null ][, bool $plugin = false ]) : array{sql: string, params: list|array}
Parameters
- $seq : string|SQL_Sequence
- $val : int
- $dsn : Dsn|null = null
- $plugin : bool = false
Tags
Return values
array{sql: string, params: list|arraysetWhere()
public
setWhere(SQL|string|int $w[, "AND"|"OR" $gl = 'AND' ]) : mixed
Parameters
- $w : SQL|string|int
- $gl : "AND"|"OR" = 'AND'
showTable()
TABLEを指定してSHOW TABLE句を生成する為のSQL_ShowTableを返す
public
static showTable([string|null $tb = null ]) : SQL_ShowTable
Parameters
- $tb : string|null = null
Return values
SQL_ShowTablehaving()
Having句を生成する
protected
having(QueryBuilder $qb[, Dsn|null $dsn = null ]) : array<string, mixed>
Parameters
- $qb : QueryBuilder
- $dsn : Dsn|null = null
Return values
array<string, mixed>join()
JOIN句を生成する
protected
join([Dsn|null $dsn = null ]) : array{sql: string, params: list|array}
Parameters
- $dsn : Dsn|null = null
Return values
array{sql: string, params: list|arraylimit()
Limit句を生成する
protected
limit(QueryBuilder $qb) : void
Parameters
- $qb : QueryBuilder
order()
Order句を生成する
protected
order(QueryBuilder $qb[, Dsn|null $dsn = null ]) : void
Parameters
- $qb : QueryBuilder
- $dsn : Dsn|null = null
union()
UNION句を生成する
protected
union([Dsn|null $dsn = null ]) : array{sql: string, params: list|array}|null
Parameters
- $dsn : Dsn|null = null
Return values
array{sql: string, params: list|arraywhere()
protected
where([Dsn|null $dsn = null ]) : array{sql: string, params: list|array}
Parameters
- $dsn : Dsn|null = null