KKUT Docs

Koşul Deyimleri

KUT Framework çok sayıda farklı koşul kullanımlarını destekler. Standart DB::where() kullanımına alternatif olarak kullanabileceğiniz bir çok yöntem aşağıda anlatılmıştır. # Yöntemler DB::wh…

KUT Framework çok sayıda farklı koşul kullanımlarını destekler. Standart DB::where() kullanımına alternatif olarak kullanabileceğiniz bir çok yöntem aşağıda anlatılmıştır.

Yöntemler

DB::whereAnd(string $column, string $value) : this
DB::whereOr(string $column, string $value) : this
DB::whereNot(string $column, string $value, string $logical = 'AND') : this
DB::whereLike(string $column, string $value, string $logical = 'AND') : this
DB::whereStartLike(string $column, string $value, string $logical = 'AND') : this
DB::whereEndLike(string $column, string $value, string $logical = 'AND') : this
DB::whereBetween(string $column, string $value1, string $value2, string $logical = 'AND') : this
DB::whereIn(string $column, array $values, string $logical = 'AND') : this
DB::whereNotIn(string $column, array $values, string $logical = 'AND') : this
DB::whereInTable(string $column, string $value, string $logical = 'AND') : this
DB::whereInQuery(string $column, string $value, string $logical = 'AND') : this
DB::whereJson(string $column, string $value = NULL, string $logical = 'AND') : this
DB::whereNotJson(string $column, string $value = NULL, string $logical = 'AND') : this
DB::whereFulltext(string $column, string $value, string $type = NULL, string $logical = 'AND') : this
DB::whereEmpty(string $column, $string $logical = 'AND') : this
DB::whereNotEmpty(string $column, $string $logical = 'AND') : this
DB::whereNull(string $column, $string $logical = 'AND') : this
DB::whereNotNull(string $column, $string $logical = 'AND') : this
DB::whereColumnnameCondition(scalar $data) : this

Örnek Tablo

Aşağıdaki gibi örnek bir veri tablosuna göre hangi yöntemlerle hangi sonuçları elde edeceğimizi görelim.

blogs
id title content
1 hello {"tr":"Merhaba", "en":"Hello"}
2 goodbye {"tr":"Güle güle", "en":"Goodbye"}
3 howareyou {"tr":"Nasilsin?", "en":"How are you?"}

# WhereAnd

Koşulları AND bağlacı ile bağlar.

string $columnName Kolon adı.
string $value Kolon değeri.
return this

Kullanımlar

$blogs = DB::whereAnd('id', 2)->where('title', 'goodbye')->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE id = '2' AND title = 'goodbye' 

# WhereOr 

Koşulları OR bağlacı ile bağlar.

string $columnName Kolon adı.
string $value Kolon değeri.
return this

Kullanımlar

$blogs = DB::whereOr('id', 2)->where('id', 2)->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '1' ( length = 3 )
        title => string 'hello' ( length = 7 )
        content => string '{"tr":"Merhaba", "en":"Hello"}' ( length = 32 )

1 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE id = '1' OR id = '2' 

# WhereNot 

Kolonu eşit değiline (!=) göre karşılaştırır.

string $columnName Kolon adı.
string $value Kolon değeri.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereNot('id', 1)->whereNot('id', 2)->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '3' ( length = 3 )
        title => string 'howareyou' ( length = 11 )
        content => string '{"tr":"Nasilsin?", "en":"How are you?"}' ( length = 41 )
SELECT * FROM blogs WHERE id != '1' and id != '2'

# WhereLike 

Kolonun değerinde içinde geçeni (%value%) arama yapmak için kullanılır.

string $columnName Kolon adı.
string $value Kolon değeri.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereLike('title', 'bye')->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE title like '%bye%' 

# WhereStartLike 

Kolonun değerinde ile başlayanı (value%) aramak için kullanılır.

string $columnName Kolon adı.
string $value Kolon değeri.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereStartLike('title', 'how')->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '3' ( length = 3 )
        title => string 'howareyou' ( length = 11 )
        content => string '{"tr":"Nasilsin?", "en":"How are you?"}' ( length = 41 )
SELECT * FROM blogs WHERE title like 'how%' 

# WhereEndLike 

Kolonun değerinde ile biteni (%value) aramak için kullanılır.

string $columnName Kolon adı.
string $value Kolon değeri.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereEndLike('title', 'you')->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '3' ( length = 3 )
        title => string 'howareyou' ( length = 11 )
        content => string '{"tr":"Nasilsin?", "en":"How are you?"}' ( length = 41 )
SELECT * FROM blogs WHERE title like '%you' 

# WhereBetween 

Belirtilen değerler de dahil arasındaki verileri getirmek için kullanılır. BETWEEN value1 AND value2 SQL söz diziminin karşılığıdır.

string $columnName Kolon adı.
string $value1 Başlangıç değeri
string $value2 Bitiş değeri.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereBetween('id', 1, 2)->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '1' ( length = 3 )
        title => string 'hello' ( length = 7 )
        content => string '{"tr":"Merhaba", "en":"Hello"}' ( length = 32 )

1 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE id between 1 AND 2 

# WhereIn 

Kolonun belirtilen değerler arasında olup olmadığını kontrol eder. Eğer arasında ise sonuçları getirir.

string $columnName Kolon adı.
array $values Kolonun içinde aranacağı değerler.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereIn('id', [3, 4, 7])->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '3' ( length = 3 )
        title => string 'howareyou' ( length = 11 )
        content => string '{"tr":"Nasilsin?", "en":"How are you?"}' ( length = 41 )
)
SELECT * FROM blogs WHERE id in (3,4,7) 

# WhereNotIn 

Kolonun belirtilen değerler arasında olup olmadığını kontrol eder. Eğer arasında değilse sonuçları getirir.

string $columnName Kolon adı.
array $values Kolonun içinde aranacağı değerler.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereNotIn('id', [1, 3, 4])->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE id not in (1,3,4) 

# WhereJson KUT 1.0’da desteklenir & {{MySQL >= 5.7}})

Yukarıda belirtilen sürümler itibari ile JSON veri tutan kolon içinden eşleşen değere göre sonuçları getirmek için kullanılır.

string $columnName Kolon adı.
string $value Kolon değeri.
string $logical = NULL Bağlaç.
Seçenekler AND, OR
return this

Kullanımlar

$blogs = DB::whereJson('content', 'Goodbye')->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE JSON_SEARCH(content, 'one', 'Goodbye') IS NOT NULL 

# WhereNotJson KUT 1.0’da desteklenir & {{MySQL >= 5.7}})

Yukarıda belirtilen sürümler itibari ile JSON veri tutan kolon içinden eşleşmeyen değere göre sonuçları getirmek için kullanılır.

string $columnName Kolon adı.
string $value Kolon değeri.
string $logical = NULL Bağlaç.
Seçenekler AND, OR
return this

Kullanımlar

$blogs = DB::whereNotJson('content', 'Goodbye')->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '1' ( length = 3 )
        title => string 'hello' ( length = 7 )
        content => string '{"tr":"Merhaba", "en":"Hello"}' ( length = 32 )

1 => object 

        id => string '3' ( length = 3 )
        title => string 'howareyou' ( length = 11 )
        content => string '{"tr":"Nasilsin?", "en":"How are you?"}' ( length = 41 )
SELECT * FROM blogs WHERE JSON_SEARCH(content, 'one', 'Goodbye') IS NULL 

# WhereFulltext

Full-text arama yapabilmek için aramanın yapıldığı kolona FULLTEXT indeksi atanmış olmalıdır. Bu işlemden sonra bu kullanım aranan ifadenin en çok geçtiği sonuçtan en aza doğru sıralayarak bulunan kayıtları listeler.

string $columnName Kolon adı.
string $value = NULL Aranan ifade.
string $type Tür.
Seçenekler boolean, booleanExpansion, language, languageExpansion
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereFulltext('content', 'e')->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '1' ( length = 3 )
        title => string 'hello' ( length = 7 )
        content => string '{"tr":"Merhaba", "en":"Hello"}' ( length = 32 )

1 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE MATCH(content) AGAINST('e')
Dikkat: Bu yöntem MySQL 5.6 ve üzeri sürümlerde çalışmaktadır.

# WhereEmpty KUT 1.0’da desteklenir

Kolon NULL veya boş (string empty) mu kontrol eder.

string $columnName Kolon adı.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereEmpty('title')->blogs();

output($blogs->stringQuery());
SELECT * FROM blogs WHERE ( title = "" or title is null )

# WhereNotEmpty KUT 1.0’da desteklenir

Kolon NOT NULL ve boş (string empty) değil mi kontrol eder.

string $columnName Kolon adı.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereNotEmpty('title')->blogs();

output($blogs->stringQuery());
SELECT * FROM blogs WHERE ( title != "" and title is not null )

# WhereNull KUT 1.0’da desteklenir

Kolon NULL mu kontrol eder.

string $columnName Kolon adı.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereNull('title')->blogs();

output($blogs->stringQuery());
SELECT * FROM blogs WHERE ( title is null )

# WhereNotNull KUT 1.0’da desteklenir

Kolonun NOT NULL mu kontrol eder.

string $columnName Kolon adı.
string $logical = 'AND' Bağlaç
return this

Kullanımlar

$blogs = DB::whereNotNull('title')->blogs();

output($blogs->stringQuery());
SELECT * FROM blogs WHERE ( title is not null )

# WhereColumnnameCondition

Bu özel WHERE kullanımı istenilen kolon adı ve bağlaç türüne göre ekstra parametre kullanılmadan istenilen WHERE yapısı oluşturmak için tasarlanmıştır. Yöntem adında istenilen kolon ve birleştirilecek başka WHERE yapısı varsa bağlaç isimleri belirtilerek kullanılır.

scalar $value Kolon değer.
return this  

Kullanımı

$blogs = DB::whereTitleOr('Goodbye')->whereId(1)->blogs();

output($blogs->result());

output($blogs->stringQuery());
0 => object 

        id => string '1' ( length = 3 )
        title => string 'hello' ( length = 7 )
        content => string '{"tr":"Merhaba", "en":"Hello"}' ( length = 32 )

1 => object 

        id => string '2' ( length = 3 )
        title => string 'goodbye' ( length = 9 )
        content => string '{"tr":"Güle güle", "en":"Goodbye"}' ( length = 38 )
SELECT * FROM blogs WHERE title = 'Goodbye' Or id = '1' 
KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.