sql >> Database teknologi >  >> RDS >> Mysql

udarbejdet erklæring, hvor værdien er i matrix

To problemer:

  • Listen skal sendes som sekund argument til find_in_set , så det burde være:

    find_in_set(category, ?)
    
  • Dette argument skal være af typen streng (kommaseparerede værdier). Så konverter først dit array til sådan en streng med implode :

    $csv = implode(",", $category);
    

Kode:

if($ps = $db->prepare("
   SELECT id, product, category, price 
   FROM products
   WHERE price <= ? and find_in_set(category, ?)
   ORDER BY id") {
     $csv = implode(",", $category);
     $ps->bind_param("ds", $price, $csv); 
     $ps->execute();
     $ps->bind_result($id, $name, $cat, $pr);
     while($ps->fetch()) {
       /* ...  echo the results .....  */
     }
    $ps->free_result();
    $ps->close();
}


  1. hvordan man bruger DISTINCT ON med mysql ved hjælp af ActiveRecord

  2. Sådan fungerer SQLite Char()

  3. Brug af MariaDB med Entity Framework

  4. DAYOFMONTH() Eksempler – MySQL