これは、1つのMySQLクエリで複数の行を取得するための最良の方法です。
IDの配列があります:
$id_array = array('34','341','342','334','344','354','3234','33234','3234','3234');
mysqlデータベースからそれらのIDに関連付けられたタイトルを取得したいと思います。
私には2つのアプローチがあります:
1)例:
foreach($id_array as $id){
$query = mysqli_query($con, "SELECT title FROM content WHERE id = '$id'");
$id_db = mysqli_fetch_row($query);
echo $id_db['title'];
}
2)例:
$query = mysqli_query($con, "SELECT title FROM content WHERE id = '$id_array[1]' AND id = '$id_array[2]' AND id = '$id_array[3]' AND 'id = $id_array[4]' AND id = '$id_array[5]'");
while($result = mysqli_fetch_assoc($query)){
echo $result['title'];
}
私は高負荷のサイトで作業しており、最良のソリューションを使用したいと考えています。上記のコードは100%完全ではなく、アイデアの生の実装にすぎません。配列要素の数は1〜1kです。
このソリューションはどうですか?
$ids = implode(',',array_map('intval',$id_array));
$query = mysqli_query($con, "SELECT title FROM content WHERE id IN ($ids)");
// ..
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加