Laravel Mysql IS NULL Kullanımı ?
-
Helöw
Mysql de ürünlerime özel bir sıralama sistemi yapmak adına 'order' adında bir colum ekledim ve Products tablomun 'order' colum'unda boş veri veya null değeri benim 1,2,3 gibi sıraladığım ürünlerin en başına geliyor.
SQL QUERY : SELECT * FROM products ORDER BY 'order' ASC
Yukarıdaki query ile gelen verilerde 'order' colum'unda dönen veri NULL || '' ise aşağıdaki şekilde geri dönüyor.
NULLNULL
1
2
3
yukarıdaki şekilde veri dönüyor ben bunu nasıl NULL veya boş değerleri last(sonu) 'a atacak şekilde bir query ile sorgu göndermeliyim.
Laravel8 - Mysql - PHP74 kullanıyoruz (Centos7.9 üzerinden) -
Sorry sanırım istek şu yönde
düz mysql
TheAvenqer tarafından 27/Nis/21 01:57 tarihinde düzenlenmiştirSELECT * FROM table ORDER BY ISNULL(field), field ASC;
laravel
https://stackoverflow.com/a/29732171 -
TheAvenqer bunu yazdı
$users = DB::table('users') ->whereNotNull('updated_at') ->get();
şeklinde buldum
https://laravel.com/docs/8.x/queriesVermiş olduğun örnekte sadece NULL olmayanları getirir.
-
SELECT * FROM products ORDER BY isnull(order), order asc
SELECT * FROM products ORDER BY isnull(order) desc, order asc
dener misin bi, boyle biseyle cozmustum galiba
-
Sorunu çözdük aşağıdaki şekilde örnekleride vereyim işine yarayan ihtiyacı olan vardır belki.
LARAVEL DB CLASS KULLANIMI;
$products = DB::table('products')->where([
'category' => $cat->id,
'status' => 1
])->orderByRaw('-`order` DESC, id DESC')->get();
SQL QUERY;
SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC -
anahtar kelime coalesce
COALESCE(null_column, 0) ile null gelen değeri istediğin değere çevirebilirsin. Örneğin 999999 verip en sona attırabilirsin.