新聞中心
MySQL WHERE 子句
我們知道從 MySQL 表中使用 SQL SELECT 語句來讀取數(shù)據(jù)。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)公司、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了于都免費(fèi)建站歡迎大家使用!
如需有條件地從表中選取數(shù)據(jù),可將 WHERE 子句添加到 SELECT 語句中。
語法
以下是 SQL SELECT 語句使用 WHERE 子句從數(shù)據(jù)表中讀取數(shù)據(jù)的通用語法:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
- 查詢語句中你可以使用一個(gè)或者多個(gè)表,表之間使用逗號(hào), 分割,并使用WHERE語句來設(shè)定查詢條件。
- 你可以在 WHERE 子句中指定任何條件。
- 你可以使用 AND 或者 OR 指定一個(gè)或多個(gè)條件。
- WHERE 子句也可以運(yùn)用于 SQL 的 DELETE 或者 UPDATE 命令。
- WHERE 子句類似于程序語言中的 if 條件,根據(jù) MySQL 表中的字段值來讀取指定的數(shù)據(jù)。
以下為操作符列表,可用于 WHERE 子句中。
下表中實(shí)例假定 A 為 10, B 為 20
| 操作符 | 描述 | 實(shí)例 |
|---|---|---|
| = | 等號(hào),檢測兩個(gè)值是否相等,如果相等返回true | (A = B) 返回false。 |
| <>, != | 不等于,檢測兩個(gè)值是否相等,如果不相等返回true | (A != B) 返回 true。 |
| > | 大于號(hào),檢測左邊的值是否大于右邊的值, 如果左邊的值大于右邊的值返回true | (A > B) 返回false。 |
| < | 小于號(hào),檢測左邊的值是否小于右邊的值, 如果左邊的值小于右邊的值返回true | (A < B) 返回 true。 |
| >= | 大于等于號(hào),檢測左邊的值是否大于或等于右邊的值, 如果左邊的值大于或等于右邊的值返回true | (A >= B) 返回false。 |
| <= | 小于等于號(hào),檢測左邊的值是否小于或等于右邊的值, 如果左邊的值小于或等于右邊的值返回true | (A <= B) 返回 true。 |
如果我們想在 MySQL 數(shù)據(jù)表中讀取指定的數(shù)據(jù),WHERE 子句是非常有用的。
使用主鍵來作為 WHERE 子句的條件查詢是非??焖俚?。
如果給定的條件在表中沒有任何匹配的記錄,那么查詢不會(huì)返回任何數(shù)據(jù)。
從命令提示符中讀取數(shù)據(jù)
我們將在SQL SELECT語句使用WHERE子句來讀取MySQL數(shù)據(jù)表 runoob_tbl 中的數(shù)據(jù):
實(shí)例
以下實(shí)例將讀取 runoob_tbl 表中 runoob_author 字段值為 Sanjay 的所有記錄:
SQL SELECT WHERE 子句
SELECT
*
from
runoob_tbl
WHERE
runoob_author
=
'
菜鳥教程
'
;
輸出結(jié)果:
MySQL 的 WHERE 子句的字符串比較是不區(qū)分大小寫的。 你可以使用 BINARY 關(guān)鍵字來設(shè)定 WHERE 子句的字符串比較是區(qū)分大小寫的。
如下實(shí)例:
BINARY 關(guān)鍵字
mysql
>
SELECT
*
from
runoob_tbl
WHERE
BINARY
runoob_author
=
'
runoob.com
'
;
Empty
set
(
0.01
sec
)
mysql
>
SELECT
*
from
runoob_tbl
WHERE
BINARY
runoob_author
=
'
RUNOOB.COM
'
; +-----------+---------------+---------------+-----------------+ |
runoob_id
|
runoob_title
|
runoob_author
|
submission_date
| +-----------+---------------+---------------+-----------------+ |
3
|
JAVA
教程 |
RUNOOB
.
COM
|
2016
-
05
-
06
| |
4
| 學(xué)習(xí)
Python
|
RUNOOB
.
COM
|
2016
-
03
-
06
| +-----------+---------------+---------------+-----------------+
2
rows
in
set
(
0.01
sec
)
實(shí)例中使用了 BINARY 關(guān)鍵字,是區(qū)分大小寫的,所以 runoob_author='runoob.com' 的查詢條件是沒有數(shù)據(jù)的。
使用PHP腳本讀取數(shù)據(jù)
你可以使用 PHP 函數(shù)的 mysqli_query() 及相同的 SQL SELECT 帶上 WHERE 子句的命令來獲取數(shù)據(jù)。
該函數(shù)用于執(zhí)行 SQL 命令,然后通過 PHP 函數(shù) mysqli_fetch_array() 來輸出所有查詢的數(shù)據(jù)。
實(shí)例
以下實(shí)例將從 runoob_tbl 表中返回使用 runoob_author 字段值為 RUNOOB.COM 的記錄:
MySQL WHERE 子句測試:
$dbhost
=
'
localhost
'
;
//
mysql服務(wù)器主機(jī)地址
$dbuser
=
'
root
'
;
//
mysql用戶名
$dbpass
=
'
123456
'
;
//
mysql用戶名密碼
$conn
=
mysqli_connect
(
$dbhost
,
$dbuser
,
$dbpass
)
;
if
(
!
$conn
)
{
die
(
'
連接失敗:
'
.
mysqli_error
(
$conn
)
)
;
}
//
設(shè)置編碼,防止中文亂碼
mysqli_query
(
$conn
,
"
set names utf8
"
)
;
//
讀取 runoob_author 為 RUNOOB.COM 的數(shù)據(jù)
$sql
=
'
SELECT runoob_id, runoob_title, runoob_author, submission_date FROM runoob_tbl WHERE runoob_author="RUNOOB.COM"
'
;
mysqli_select_db
(
$conn
,
'
RUNOOB
'
)
;
$retval
=
mysqli_query
(
$conn
,
$sql
)
;
if
(
!
$retval
)
{
die
(
'
無法讀取數(shù)據(jù):
'
.
mysqli_error
(
$conn
)
)
;
}
echo
'
菜鳥教程 MySQL WHERE 子句測試
'
;
echo
'
'
;
echo
'
| 教程 ID | 標(biāo)題 | 作者 | 提交日期 |
| {$row['runoob_id']} | {$row['runoob_title']} | {$row['runoob_author']} | {$row['submission_date']} |
'
;
//
釋放內(nèi)存
mysqli_free_result
(
$retval
)
;
mysqli_close
(
$conn
)
;
?>
輸出結(jié)果如下所示:
標(biāo)題名稱:創(chuàng)新互聯(lián)MYSQL教程MySQLWHERE子句
網(wǎng)站URL:http://fisionsoft.com.cn/article/ccceojj.html


咨詢
建站咨詢
