MySQL (patlayan / eşleşen dizi)

0 Cevap php

Question1:

MySQL table

id | array
1 | 1,2,3
2 | 2
3 | 2,3
4 | 4,5,6

$_GET['id'] = 2;
$a = mysql_query("SELECT * FROM `table` WHERE `array` ??? '$_GET[id]'");

Bu adımda, ben entire dizi boyunca çalıştırın ve $ _GET ['id'] ile eşleşen olup olmadığını görmek istiyorum, böylece gerekir çıktı:

kimlikleri: 1,2,3

Question2:

MySQL table

id | array
1 | 4,5,6
2 | 3,4,7

$_GET['id'] = 4;
$a = mysql_query("SELECT * FROM `table` WHERE `array` ??? '$_GET[id]'");

Bu adımda, ben only dizideki ilk elemanı karşı maç istiyor, böylece gerekir çıktı:

id: 4

Ben sadece bunu yapmak için PHP kullanarak düşünebilirsiniz, ama bu bile mümkün olup olmadığını ben değil, sadece MySQL sorgusu içinde olduğunu yapardım.

$a = mysql_query("SELECT * FROM `table`");
while($b = mysql_fetch_assoc($a))
{
    $elements = explode(',', $b['array']);
    foreach($elements as $element)
    {
        if($element == $_GET['id'])
        {
            echo $b['id'].'<br />';
        }
    }
}

veya

$a = mysql_query("SELECT * FROM `table`");
while($b = mysql_fetch_assoc($a))
{
    $array = $b['array'];

    if(in_array($_GET['id'], $array))
    {
        echo $b['id'].'<br />';
    }
}

Bu sadece korkunç olmazdı.

0 Cevap