詳解MySQL中WHERE子句的用法

neuyu發表於2021-09-09

我們已經看到SQL SELECT命令來從MySQL表獲取資料。我們可以使用一個條件子句WHERE子句中篩選出來的結果。使用WHERE子句,我們可以指定一個選擇的標準來從表中選擇所需的記錄。
語法:

下面是通用的SQL WHERE子句來獲取資料從MySQL表的SELECT命令的語法:

?

12 SELECT field1, field2,...fieldN table_name1, table_name2...[WHERE condition1 [AND [OR]] condition2.....
  •     可以使用一個或多個以逗號分隔的表,包括各種使用WHERE子句條件。但是WHERE子句的SELECT命令是一個可選部分。

  •     您可以使用WHERE子句指定任何條件。

  •     您可以指定一個以上的條件下使用AND或者OR運算子。

  •     一個WHERE子句中可以使用的分散DELETE或UPDATE的SQL命令指定條件。

就像程式語言中的一樣,如果條件的WHERE子句。該子句用於在MySQL的表的欄位值與給定值比較。如果從外部給定值是等於可用欄位值在MySQL表,然後返回該行。

這裡是清單的運算子可以使用WHERE子句。

假設欄位A有值為10和欄位B擁有的值為20: 

 WHERE子句是非常有用的,當想獲取的選擇表中的行,特別是當你使用MySQL的JOIN。JOIN在另一章中討論。

這是一個常見的做法是使用主鍵查詢記錄,使搜尋快速。

如果給定的條件不符合任何表中的記錄,那麼查詢不會返回任何行。
從命令提示符獲取資料:

這將使用SQL SELECT命令的WHERE子句,以獲取選擇的資料MySQL表tutorials_tbl
例項:

下面的例子將返回tutorials_tbl表中作者的名字是Sanjay所有記錄:

?

12345678910111213 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>

除非執行LIKE比較字串的比較是不區分大小寫的。可以搜尋區分大小寫,使用BINARY關鍵字如下。

?

123456789 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指令碼獲取資料:

可以使用相同SQL的SELECT命令的WHERE子句中到PHP的functionmysql_query()中。這個函式是用來執行SQL命令後,另一個PHP函式mysql_fetch_array()可以用來獲取所有選定的資料。這個函式返回的行作為一個關聯陣列,數字陣列或兩者。這個函式返回FALSE,如果沒有更多的行。
例項:

下面的例子將返回tutorials_tbl表中作者的名字是Sanjay所有記錄:

?

1234567891011121314151617181920212223242526272829303132 $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  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']}
"
.     "Title: {$row['tutorial_title']}
"
.     "Author: {$row['tutorial_author']}
"
.     "Submission Date : {$row['submission_date']}
"
.     "--------------------------------
"
;} echo "Fetched data successfullyn";mysql_close($conn);?>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4550/viewspace-2811113/,如需轉載,請註明出處,否則將追究法律責任。

相關文章