sql >> データベース >  >> RDS >> Mysql

配列に一致する要素をSQLで選択し、それらを行に表示します

    ここで行うべきことは、IN CLAUSEを使用することです。 。 $_POST[]を変換します カンマ区切りの文字列に。

    $choices = implode(', ', $_POST['choices']);
    
    SELECT name, item, price, images FROM `my-tb` WHERE item IN ($choices)
    

    次のようなクエリが生成されます:

    SELECT name, item, price, images FROM `my-tb` WHERE item IN (a,b,d)
    

    これにより、$_POSTをループしないようになります。 不必要に複数のクエリを実行します。

    サイドノート

    実際のテーブルの名前がmy-tbかどうかはわかりません ただし、hyphensがある場合 テーブル名にはbackticksを使用する必要があります 文字列名をカプセル化します。



    1. mysql_fetch_assoc():指定された引数はphpの有効なMySQL結果リソースではありません

    2. CTE、サブクエリ、一時テーブル、またはテーブル変数の間にパフォーマンスの違いはありますか?

    3. 同じ列で外部キーを参照する

    4. MySQLで合計行を追加する方法