Where İfadesi

Laravel ile veritabanı sorguları yaparken sorgularımıza where ifadesi eklemek için where metodunu kullanabiliriz.

Where metodu 3 parametre alır. İlk parametresi veritabanında filtreleyeceğimiz sütun adı, ikinci parametresi operatör ve üçüncü parametresi ise değerdir.

Şimdi örnek bir kodla açıklayalım. users adında bir tablomuz olduğunu varsayalım. Bu tablodan age değeri 18’den büyük olanları çekmek isteyelim. Yazacağımız laravel sorgusu şu şekilde olur. Bu sorgular genellikle controller dosyalarında yapılır.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
                ->where('age', '>', 18) 
                ->get();
    } 
}

Where metoduna ikinci parametreyi girmezsek kendisi otomatikman = operatorü girilmiş gibi davranır.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
                ->where('age', 18) 
                ->get(); // age değeri 18 olan kayıtları getirir.
    } 
}

Ayrıca where metoduna dizi şeklinde veri gönderebiliriz. Bu şekilde birden fazla where ifadesi kullanacağımız zaman tek where metodu ile bu işlemi halledebiliriz.

$users = DB::table('users')->where([
    ['status', '=', '1'],
    ['subscribed', '<>', '1'],
])->get();

Laravel orWhere Kullanımı

Or ifadesiyle birbirine bağlanan koşulların herhangi biri sağlanırsa koşul gerçekleşir. Laravel’de orWhere metodu da bu işlemi yapar. Kullanımı where metoduyla aynıdır. 3 parametre alır. 2. parametreyi girmezseniz operatörü otomatikman eşittir olarak kabul eder.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->where('age', '>', 15)
        ->orWhere('name', 'ali')
        ->get();
    } 
}

Laravel whereBetween ve orWhereBetween Kullanımı

whereBetween metodu ile bir sütun değerinin gireceğimiz iki değer aralıkları arasındaki kayıtlı olan verilerini çekebiliriz.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereBetween('age', [1, 100])
        ->get();
    } 
}

Laravel whereNotBetween Kullanımı

Eğer çekeceğimiz değerler iki farklı değer arasındaki değerlerin haricindeki değerler ise whereNotBetween metodunu kullanırız.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
 $users = DB::table('users')
                    ->whereNotBetween('votes', [18, 35])
                    ->get();
    } 
}

Yukaridaki index metodundaki sorgu yaşı 18 ile 35in arasındaki değerlerden farklı , veritabanında kayıtlı olan verileri çeker.

Laravel whereIn Kullanımı

whereIn metodu, belirli bir sütunun değerinin verilen dizi içinde olan değerlerle eşleşen verilerini getirir.

<?php


namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereIn('id', [1, 2, 3])
        ->get();
    } 
}

Laravel whereNotIn Kullanımı

whereNotIn metodu ise bir sütun değerinin dizi olarak metoda gönderdiğimiz verilerin içerisinde olan verilerin haricindeki verileri getirmek için kullanılır.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereNotIn('id', [1, 2, 3])
        ->get();
    } 
}

Laravel whereNull Kullanımı

whereNull yöntemi, verilen sütunun değerinin NULL ise sonuçları getirir.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereNull('updated_at')
        ->get();
    } 
}

Laravel whereNotNull Kullanımı

Bu metot ise parametre olarak verdiğimiz sütunun değeri null olmayan verilerini getirir.

$users = DB::table('users')
                ->whereNotNull('updated_at')
                ->get();

Laravel whereDate Kullanımı

Belirli bir tarihe ait kayıtları getirmek için kullanılır.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request; 
use DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereDate('created_at', '2016-12-31')
        ->get();
    } 
}

Laravel whereMonth Kullanımı

Belirli bir ayda kayıt edilmiş verileri getirmek için kullanılır.

$users = DB::table('users')
                ->whereMonth('created_at', '12')
                ->get();

Laravel whereDay Metodu

Belirlediğimiz bir günde kaydedilmiş verileri getirmek için kullandığımız metottur.

$users = DB::table('users')
                ->whereDay('created_at', '31')
                ->get();

Laravel whereYear Kullanımı

Belirlediğimiz bir yılda kaydedilmiş verileri getirmek için kullanılır.

$users = DB::table('users')
                ->whereYear('created_at', '2016')
                ->get();

Laravel whereTime Kullanımı

Bir sütunun değerini belirli bir zamanla karşılaştırmak için whereTime yöntemi kullanılabilir.

$users = DB::table('users')
                ->whereTime('created_at', '=', '11:20:45')
                ->get();

Laravel whereColumn Kullanımı

whereColumn yöntemi, iki sütunun eşit olduğunu doğrulamak için kullanılabilir.

$users = DB::table('users')
                ->whereColumn('first_name', 'last_name')
                ->get();

Ayrıca, whereColumn yöntemine bir karşılaştırma operatörü de ekleyebilirsiniz.

$users = DB::table('users')
                ->whereColumn('updated_at', '>', 'created_at')
                ->get();

Ayrıca, whereColumn yöntemine bir dizi sütun karşılaştırması da iletebilirsiniz. Bu koşullar ve operatörü kullanılarak birleştirilir.

$users = DB::table('users')
                ->whereColumn([
                    ['first_name', '=', 'last_name'],
                    ['updated_at', '>', 'created_at'],
                ])->get();

 

Shares:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir