今天我們來(lái)學(xué)習(xí)一下PHP中的"Not In"操作,也就是我們常見(jiàn)的不在某個(gè)值范圍內(nèi)的判斷。假設(shè)你想要在一個(gè)數(shù)據(jù)庫(kù)表中,查詢(xún)某一列不在一個(gè)給定的數(shù)值范圍內(nèi)的所有行,這時(shí)候就需要用到"Not In"操作了。那么,我們接下來(lái)就來(lái)詳細(xì)講解這個(gè)操作。
我們先來(lái)看一下"Not In"操作的語(yǔ)法格式:
SELECT column1, column2, ... FROM table_name WHERE column_name NOT IN (value1, value2, ...);其中,column1、column2等是你要查詢(xún)的列名,table_name是你要查詢(xún)的表名,column_name是你要查詢(xún)的列名,value1、value2等是你要查找的值。 舉個(gè)例子,假設(shè)我們有一個(gè)students表,其中包括id、name和age三列,我們想要查詢(xún)出age不在18到21歲之間的所有學(xué)生,那么我們可以這樣寫(xiě):
SELECT id, name, age FROM students WHERE age NOT IN (18, 19, 20, 21);這樣,我們就可以得到所有age不在18到21歲之間的學(xué)生了。 除了可以用數(shù)字來(lái)表示要查找的值以外,也可以使用字符串。比如我們想要查找name不是Tom、Jerry或者Spike的所有學(xué)生,那么我們可以這樣寫(xiě):
SELECT id, name, age FROM students WHERE name NOT IN ('Tom', 'Jerry', 'Spike');這樣,我們就可以得到所有name不是Tom、Jerry或者Spike的學(xué)生了。 需要注意的是,當(dāng)我們使用"Not In"操作時(shí),如果查詢(xún)的值范圍中存在NULL值,那么查詢(xún)結(jié)果將會(huì)是一個(gè)空集。因?yàn)樵赟QL中,NULL值與任何數(shù)值或字符串都不相等。 最后,我們?cè)賮?lái)看一下在PHP中如何使用"Not In"操作。我們可以使用PHP中的mysqli或PDO對(duì)象來(lái)連接數(shù)據(jù)庫(kù)并執(zhí)行SQL語(yǔ)句,具體實(shí)現(xiàn)的代碼如下:
// 使用mysqli連接數(shù)據(jù)庫(kù) $mysqli = new mysqli('localhost', 'username', 'password', 'database'); if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } $sql = "SELECT id, name, age FROM students WHERE age NOT IN (18, 19, 20, 21)"; $result = $mysqli->query($sql); if ($result->num_rows >0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"] . " - Name: " . $row["name"] . " - Age: " . $row["age"] . "以上是關(guān)于"Not In"操作的詳細(xì)講解及使用說(shuō)明,希望對(duì)大家有所幫助。
"; } } else { echo "0 results"; } $mysqli->close(); // 使用PDO連接數(shù)據(jù)庫(kù) $dsn = 'mysql:host=localhost;dbname=database'; $username = 'username'; $password = 'password'; try { $pdo = new PDO($dsn, $username, $password); $sql = "SELECT id, name, age FROM students WHERE age NOT IN (18, 19, 20, 21)"; $stmt = $pdo->query($sql); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "id: " . $row["id"] . " - Name: " . $row["name"] . " - Age: " . $row["age"] . "
"; } } catch (PDOException $e) { echo 'Connect Error: ' . $e->getMessage(); }