程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 詳解MySQL中WHERE子句的用法

詳解MySQL中WHERE子句的用法

編輯:關於MYSQL數據庫

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

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

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:

2015526115818593.jpg (850×259)

 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);
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved