eticaret sitesinde ürünlerin nitelikleri var filtreleme yapıldığında en çok niteliği eşleşenden en az niteliği eşleşene doğru sıralatmak istiyorum ama bunu php ile yapınca ürün sayısı çok diye çok uzuyo sql üzerinden yapabilirmiyim ve db ye nasıl kaydetmem lazım json mı ya da 1,2,3,4,5 vs gibi mi yoksa başka bişey mi, yani aranan nitelikler 5, 10, 13, 17 id li nitelikler olsun db de herhangi bir eşleşeni olan ürünleri 4 ü eşleşenden 1 i eşleşene kadar sıralatıp çekmek istiyorum bunun için order by da ya da where kısmında kullanabileceğim bi komutu varmı
edit: chatgpt çözdü, test etmedim ama açıklaması mantılıydı json kaydedip bu tarz order by yapınca her eşleşmede 1 ekleyip çoktan aza sıralar dedi
ORDER BY CASE WHEN JSON_CONTAINS(attributes, '{"color": "red"}') THEN 1 WHEN JSON_CONTAINS(attributes, '{"brand": "ACME"}') THEN 1 WHEN JSON_CONTAINS(attributes, '{"size": "medium"}') THEN 1 ELSE 0 END DESC