オンライン ゲーム (「DayZ」) への車両の配置または「スポーン」を自動化するスクリプトに取り組んでいます。ゲームの世界に追加したい場所と車両タイプを含むテーブルがありますが、挿入する場所に車両がまだ存在しないことを確認する必要があります。もしそうなら、その場所での新しい車両の挿入をスキップします.
当初は、追加するすべての場所と車両のレコードセットを収集し、それぞれをループして、その場所が既に占有されているかどうかを判断することを計画していました。
$sql = "SELECT location, vehicle_type from vehicles_to_add";
foreach ($conn->query($sql) as $row)
{
// Query the database to see if $row['location'] already exists
// in the vehicle_location table
if EXISTS then
Do not add
else
Add vehicle and location to the vehicle_location table
}
しかし、いくつかの例を見た後、SQL だけで何かできるのではないかと考えました。たとえば...おそらく次のようなもの:
INSERT INTO vehicle_location
SELECT location, vehicle_type FROM vehicles_to_add
SQL を使用するだけの利点は、データベースにイベントを作成して、それ自体で実行できることです。ただし、この SQL のみの方法を使用すると、別の車両を追加する前に場所が既に存在するかどうかを確認する方法がわかりません。