PHP ile MySQL Sorgusunda Çoklu Arama Yapma
Merhaba PT
- items
-------------------------------------
| item_id | item_name | item_filter |
-------------------------------------
| 1 | prototurk | 1,3,4 |
| 2 | soru | 1 |
| 3 | cevap | 6,3 |
| 4 | alani | 1,2,3 |
-------------------------------------
$itemSQL = "SELECT * FROM items";
$itemQuery = $db -> prepare($productSQL);
$itemQuery -> execute();
$itemRows = $itemQuery -> fetchAll(PDO::FETCH_ASSOC);
şeklinde bir tablom var. Ben bu tabloda item_filter
kolonumun içindeki virgülle ayrılmış verilerden sorguda filtreleme yapmak istiyorum.
Örneğin 1 ve 3'ü gönderdiysem 1 ve 4 ID numaralı verinin dönmesini,
Sadece 1 gönderdiysem 1 - 2 - 4 ID numaralı verinin dönmesini istiyorum.
Buradaki cevap der ki FIND_IN_SET
sadece bir değer aramak için kullanılabilir.
Hemen aşağısında bulunun bu cevap da bir 'trick' ile yakın da olsa tam bir çözüm bulamamış.
Bu cevap ise aradığınız şeye en yakın cevap gibi ama sorgu yapısı dinamik olduğu için aradığınız değer sayısına göre kodda düzenleme yapmanız gerekecekir.