How to Check if value exists in a MySQL database

后端 未结 6 697
眼角桃花
眼角桃花 2020-12-12 17:15

Suppose I have this table:

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

I want to check

相关标签:
6条回答
  • 2020-12-12 17:51

    preferred way, using MySQLi extension:

    $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();
    

    deprecated:

    $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...
    }
    
    0 讨论(0)
  • SELECT
        IF city='C7'
        THEN city
        ELSE 'somethingelse'
        END as `city`
    FROM `table` WHERE `city` = 'c7'
    
    0 讨论(0)
  • 2020-12-12 18:07

    For Matching the ID:

    Select * from table_name where 1=1
    

    For Matching the Pattern:

    Select * from table_name column_name Like '%string%'
    
    0 讨论(0)
  • 2020-12-12 18:10

    Assuming the connection is established and is available in global scope;

    //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;
        }
    }
    

    Usage: Assuming that the value to be checked is stored in the variable $username;

    if (record_exists ( 'employee', 'username', $username )){
        echo "Username is not available. Try something else.";
    } else {
        echo "Username is available";
    }
    
    0 讨论(0)
  • 2020-12-12 18:12

    For Exact Match

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

    For Pattern / Wildcard Search

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

    Of course you can change '%c7%' to '%c7' or 'c7%' depending on how you want to search it. For exact match, use first query example.

    PHP

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

    You can also use if condition there.

    0 讨论(0)
  • 2020-12-12 18:13

    I tried to d this for a while and $sqlcommand = 'SELECT * FROM database WHERE search="'.$searchString.'";';
    $sth = $db->prepare($sqlcommand); $sth->execute(); $record = $sth->fetch(); if ($sth->fetchColumn() > 0){}
    just works if there are TWO identical entries, but, if you replace if ($sth->fetchColumn() > 0){} with if ($result){} it works with only one matching record, hope this helps.

    0 讨论(0)
提交回复
热议问题