webentwicklung-frage-antwort-db.com.de

So prüfen Sie, ob in einer MySQL-Datenbank ein Wert vorhanden ist

Angenommen, ich habe diese Tabelle:

id | name | city
------------------
1  | n1   | c1
2  | n2   | c2
3  | n3   | c3
4  | n4   | c4

Ich möchte prüfen, ob der Wert c7 unter der Variablen city existiert oder nicht. 

Wenn ja, werde ich etwas tun.
Wenn dies nicht der Fall ist, werde ich etwas anderes tun.

25
Hatim

bevorzugter Weg, mit MySQLi-Erweiterung:

$mysqli = new mysqli(SERVER, DBUSER, DBPASS, DATABASE);
$result = $mysqli->query("SELECT id FROM mytable WHERE city = 'c7'");
if($result->num_rows == 0) {
     // row not found, do stuff...
} else {
    // do other stuff...
}
$mysqli->close();

veraltet:

$result = mysql_query("SELECT id FROM mytable WHERE city = 'c7'");
if(mysql_num_rows($result) == 0) {
     // row not found, do stuff...
} else {
    // do other stuff...
}
60
Reinder Wit

Für genaues Spiel

"SELECT * FROM yourTable WHERE city = 'c7'"

Für Muster-/Platzhaltersuche

"SELECT * FROM yourTable WHERE city LIKE '%c7%'"

Natürlich können Sie '%c7%' in '%c7' oder 'c7%' ändern, je nachdem, wie Sie es durchsuchen möchten. Verwenden Sie für die exakte Übereinstimmung das erste Abfragebeispiel.

PHP

$result = mysql_query("SELECT * FROM yourTable WHERE city = 'c7'");
$matchFound = mysql_num_rows($result) > 0 ? 'yes' : 'no';
echo $matchFound;

Sie können dort auch die if-Bedingung verwenden.

14
Blaster

Angenommen, die Verbindung ist hergestellt und im globalen Bereich verfügbar;

//Check if a value exists in a table
function record_exists ($table, $column, $value) {
    global $connection;
    $query = "SELECT * FROM {$table} WHERE {$column} = {$value}";
    $result = mysql_query ( $query, $connection );
    if ( mysql_num_rows ( $result ) ) {
        return TRUE;
    } else {
        return FALSE;
    }
}

Verwendung: Angenommen, der zu überprüfende Wert wird in der Variablen $ username gespeichert.

if (record_exists ( 'employee', 'username', $username )){
    echo "Username is not available. Try something else.";
} else {
    echo "Username is available";
}
1
user1979610

Ich habe versucht, dies eine Weile zu machen und $sqlcommand = 'SELECT * FROM database WHERE search="'.$searchString.'";';
$sth = $db->prepare($sqlcommand); $sth->execute(); $record = $sth->fetch(); if ($sth->fetchColumn() > 0){}
funktioniert nur, wenn ZWEI identische Einträge vorhanden sind, aber , wenn Sie .__ ersetzen. if ($sth->fetchColumn() > 0){} Mit if ($result){}it arbeitet nur mit einem passenden Datensatz. Ich hoffe, das hilft. 

0
mushkincode
SELECT
    IF city='C7'
    THEN city
    ELSE 'somethingelse'
    END as `city`
FROM `table` WHERE `city` = 'c7'
0
Muhammad Raheel

Zum Abgleichen der ID:

Select * from table_name where 1=1

Zum Anpassen des Musters:

Select * from table_name column_name Like '%string%'
0
Hassam Satti