Tek bir sorgu ile çoklu kimlikleri varlığını nasıl kontrol

2 Cevap php

Kimlik DB zaten olup olmadığını bazı kimlikleri DB zaten olup olmadığını kontrol için bir yol bulmaya çalışıyorum, ben doğal olarak temsil satırı işlemeyi önlemek için denemek istiyorum

Şu anda ben kimliği kontrol etmek için tek bir sorgu yapıyorum, ama ben 20 id kontrol ediyorum eğer komut 30 saniye kadar alıyor çünkü bu süre içinde çok pahalı olduğunu düşünüyorum

Ben yapabilirim biliyorum basit WHERE id = 1 VEYA id = 2 OR id = 3, ama olanlar onlar değildir veritabanında zaten ve kimlikleri belli bir grup bilmek istiyorum

Ben işlemler hakkında çok şey bilmiyorum ama belki bu yararlı falan olabilir

herhangi bir düşünce son derece takdir edilmektedir!

2 Cevap

Eğer "kimlikleri Grubu" belirlemek nasıl değişir

Eğer bir sorgu ile yapabilirsiniz, büyük olasılıkla bir katılmak ya da mevcut yan tümcesini kullanabilirsiniz.

örneğin

SELECT firstname
  from people p 
  where not exists (select 1 from otherpeople op where op.firstname = p.firstname)

Bu diğer insanlardan tabloda olmayan tüm insanları seçecek

Eğer sadece kimlikleri bir liste varsa, o zaman WHERE NOT IN (1,3,4 ...) kullanın

Tek bir değer 20 sorgu için 30 saniye uzun bir zaman. Eğer bazı şeyleri hızlandırmak için ID alanda dizin oluşturmak mı?

Eğer kimlik alanında bir unique key oluşturmak Ayrıca eğer sadece tüm kimlikleri ekleyebilirsiniz. Veritabanı hataları atmak ve zaten var olan bu kimlikleri eklemek değil, ancak bu hataları yok sayabilirsiniz olacaktır.