MySQL Abfrage, ob Element enthalten ist

realdave

Mitglied
Hallo,

gibt es einen PHP/ MySQL Befehl, der einen Bool Wert zurückliefert, wenn ein Element in der Datenbank enthalten ist? Also mit WHERE geht das ja nicht.

(( ich will für meine Seite ein Statistik Tool erstellen, und es soll überprüft werden, ob die IP in der Datenbank schon vorhanden ist ))

Viele Grüße,
David
 
Es gibt viele Möglichkeiten:

Mit etwas mehr PHP:
PHP:
// DB-Verbindung etc.
$ip="235.145.9.17";
$res=mysql_query("SELECT ip FROM Tabelle WHERE ip LIKE '".$ip."'");
if (mysql_num_rows($res)>0) {
    //gibt es schon
}
Mit etwas mehr SQL:
PHP:
// DB-Verbindung etc.
$ip="235.145.9.17";
$res=mysql_query("SELECT IF(COUNT(*)>0,1,0) AS gibtEs 
        FROM Tabelle WHERE ip LIKE '".$ip."'");
$row=mysql_fetch_assoc($res);
if ($row['gibtEs']==1) {
    //gibt es schon
}
Gruß hpvw
 
realdave hat gesagt.:
ich schätze mal, die erste Variante hat den besseren Aufwand?
Naja, es ist ein bisschen weniger Code. Welche Variante performanter ist, kann ich ohne Performancetest nicht sagen. COUNT(*) ist in MySQL sehr optimiert implementiert, insbesondere, wenn auf den entsprechenden Feldern ein Index liegt. Es gibt ja auch weitere Möglichkeiten, zum Beispiel:
PHP:
// DB-Verbindung etc.
$ip="235.145.9.17";
$res=mysql_query("SELECT COUNT(*) AS Anzahl 
        FROM Tabelle WHERE ip LIKE '".$ip."'");
$row=mysql_fetch_assoc($res);
if ($row['Anzahl']>0) {
    //gibt es schon
}
Gruß hpvw
 
Zurück