我們已經(jīng)看到SQL SELECT命令來(lái)從MySQL表獲取數(shù)據(jù)。我們可以使用一個(gè)條件子句WHERE子句中篩選出來(lái)的結(jié)果。使用WHERE子句,我們可以指定一個(gè)選擇的標(biāo)準(zhǔn)來(lái)從表中選擇所需的記錄。
語(yǔ)法:
下面是通用的SQL WHERE子句來(lái)獲取數(shù)據(jù)從MySQL表的SELECT命令的語(yǔ)法:
SELECT field1, field2,...fieldN table_name1, table_name2...[WHERE condition1 [AND [OR]] condition2.....
就像編程語(yǔ)言中的一樣,如果條件的WHERE子句。該子句用于在MySQL的表的字段值與給定值比較。如果從外部給定值是等于可用字段值在MySQL表,然后返回該行。
這里是清單的運(yùn)算符可以使用WHERE子句。
假設(shè)字段A有值為10和字段B擁有的值為20:

WHERE子句是非常有用的,當(dāng)想獲取的選擇表中的行,特別是當(dāng)你使用MySQL的JOIN。JOIN在另一章中討論。
這是一個(gè)常見(jiàn)的做法是使用主鍵查找記錄,使搜索快速。
如果給定的條件不符合任何表中的記錄,那么查詢不會(huì)返回任何行。
從命令提示符獲取數(shù)據(jù):
這將使用SQL SELECT命令的WHERE子句,以獲取選擇的數(shù)據(jù)MySQL表tutorials_tbl
實(shí)例:
下面的例子將返回tutorials_tbl表中作者的名字是Sanjay所有記錄:
root@host# mysql -u root -p password;Enter password:*******mysql> use TUTORIALS;Database changedmysql> SELECT * from tutorials_tbl WHERE tutorial_author='Sanjay';+-------------+----------------+-----------------+-----------------+| tutorial_id | tutorial_title | tutorial_author | submission_date |+-------------+----------------+-----------------+-----------------+| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |+-------------+----------------+-----------------+-----------------+1 rows in set (0.01 sec)mysql>
除非執(zhí)行LIKE比較字符串的比較是不區(qū)分大小寫(xiě)的。可以搜索區(qū)分大小寫(xiě),使用BINARY關(guān)鍵字如下。
root@host# mysql -u root -p password;Enter password:*******mysql> use TUTORIALS;Database changedmysql> SELECT * from tutorials_tbl / WHERE BINARY tutorial_author='sanjay';Empty set (0.02 sec)mysql>
使用PHP腳本獲取數(shù)據(jù):
可以使用相同SQL的SELECT命令的WHERE子句中到PHP的functionmysql_query()中。這個(gè)函數(shù)是用來(lái)執(zhí)行SQL命令后,另一個(gè)PHP函數(shù)mysql_fetch_array()可以用來(lái)獲取所有選定的數(shù)據(jù)。這個(gè)函數(shù)返回的行作為一個(gè)關(guān)聯(lián)數(shù)組,數(shù)字?jǐn)?shù)組或兩者。這個(gè)函數(shù)返回FALSE,如果沒(méi)有更多的行。
實(shí)例:
下面的例子將返回tutorials_tbl表中作者的名字是Sanjay所有記錄:
<?php$dbhost = 'localhost:3036';$dbuser = 'root';$dbpass = 'rootpassword';$conn = mysql_connect($dbhost, $dbuser, $dbpass);if(! $conn ){ die('Could not connect: ' . mysql_error());}$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl WHERE tutorial_author="Sanjay"';//by m.survivalescaperooms.commysql_select_db('TUTORIALS');$retval = mysql_query( $sql, $conn );if(! $retval ){ die('Could not get data: ' . mysql_error());}while($row = mysql_fetch_array($retval, MYSQL_ASSOC)){ echo "Tutorial ID :{$row['tutorial_id']} <br> ". "Title: {$row['tutorial_title']} <br> ". "Author: {$row['tutorial_author']} <br> ". "Submission Date : {$row['submission_date']} <br> ". "--------------------------------<br>";} echo "Fetched data successfully/n";mysql_close($conn);?>新聞熱點(diǎn)
疑難解答
圖片精選