我們已經看到SQL SELECT命令來從MySQL表獲取數據。我們可以使用一個條件子句WHERE子句中篩選出來的結果。使用WHERE子句,我們可以指定一個選擇的標准來從表中選擇所需的記錄。
語法:
下面是通用的SQL WHERE子句來獲取數據從MySQL表的SELECT命令的語法:
SELECT field1, field2,...fieldN table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
就像編程語言中的一樣,如果條件的WHERE子句。該子句用於在MySQL的表的字段值與給定值比較。如果從外部給定值是等於可用字段值在MySQL表,然後返回該行。
這裡是清單的運算符可以使用WHERE子句。
假設字段A有值為10和字段B擁有的值為20:
WHERE子句是非常有用的,當想獲取的選擇表中的行,特別是當你使用MySQL的JOIN。JOIN在另一章中討論。
這是一個常見的做法是使用主鍵查找記錄,使搜索快速。
如果給定的條件不符合任何表中的記錄,那麼查詢不會返回任何行。
從命令提示符獲取數據:
這將使用SQL SELECT命令的WHERE子句,以獲取選擇的數據MySQL表tutorials_tbl
實例:
下面的例子將返回tutorials_tbl表中作者的名字是Sanjay所有記錄:
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> 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>
除非執行LIKE比較字符串的比較是不區分大小寫的。可以搜索區分大小寫,使用BINARY關鍵字如下。
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> SELECT * from tutorials_tbl \ WHERE BINARY tutorial_author='sanjay'; Empty set (0.02 sec) mysql>
使用PHP腳本獲取數據:
可以使用相同SQL的SELECT命令的WHERE子句中到PHP的functionmysql_query()中。這個函數是用來執行SQL命令後,另一個PHP函數mysql_fetch_array()可以用來獲取所有選定的數據。這個函數返回的行作為一個關聯數組,數字數組或兩者。這個函數返回FALSE,如果沒有更多的行。
實例:
下面的例子將返回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 www.jb51.net mysql_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); ?>