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

WHERE子句是非常有用的,當(dāng)想獲取的選擇表中的行,特別是當(dāng)你使用MySQL的JOIN。JOIN在另一章中討論。
這是一個(gè)常見的做法是使用主鍵查找記錄,使搜索快速。
如果給定的條件不符合任何表中的記錄,那么查詢不會(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 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>
除非執(zhí)行LIKE比較字符串的比較是不區(qū)分大小寫的。可以搜索區(qū)分大小寫,使用BINARY關(guān)鍵字如下。
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腳本獲取數(shù)據(jù):
可以使用相同SQL的SELECT命令的WHERE子句中到PHP的functionmysql_query()中。這個(gè)函數(shù)是用來執(zhí)行SQL命令后,另一個(gè)PHP函數(shù)mysql_fetch_array()可以用來獲取所有選定的數(shù)據(jù)。這個(gè)函數(shù)返回的行作為一個(gè)關(guān)聯(lián)數(shù)組,數(shù)字?jǐn)?shù)組或兩者。這個(gè)函數(shù)返回FALSE,如果沒有更多的行。
實(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 chabaoo.cn
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);
?>
相關(guān)文章
Mysql之如何根據(jù).frm和.idb文件恢復(fù)表結(jié)構(gòu)
這篇文章主要介紹了Mysql之如何根據(jù).frm和.idb文件恢復(fù)表結(jié)構(gòu)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
MySQL按小時(shí)查詢數(shù)據(jù),沒有的補(bǔ)0
這篇文章主要介紹了MySQL按小時(shí)查詢數(shù)據(jù),沒有的補(bǔ)0,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
MySQL報(bào)錯(cuò):sql_mode=only_full_group_by的4種輕松解決方法(含舉例)
今天學(xué)mysql函數(shù)的時(shí)候在自己服務(wù)器上的MySQL碰見了個(gè)奇怪的問題,下面這篇文章主要給大家介紹了關(guān)于MySQL報(bào)錯(cuò):sql_mode=only_full_group_by的4種輕松解決方法,需要的朋友可以參考下2023-01-01
禁止mysql做域名解析(解決遠(yuǎn)程訪問mysql時(shí)很慢)
當(dāng)遠(yuǎn)程訪問mysql時(shí),mysql會(huì)解析域名,會(huì)導(dǎo)致訪問速度很慢2010-04-04
MySQL ERROR 1045 (28000) 錯(cuò)誤的解決辦法
這篇文章主要介紹了MySQL ERROR 1045 (28000) 錯(cuò)誤的解決辦法,很實(shí)用的解決方法,感興趣的小伙伴們可以參考一下2016-06-06
一臺(tái)服務(wù)器部署兩個(gè)獨(dú)立的mysql數(shù)據(jù)庫操作實(shí)例
這篇文章主要給大家介紹了關(guān)于一臺(tái)服務(wù)器部署兩個(gè)獨(dú)立的mysql數(shù)據(jù)庫的相關(guān)資料,同一臺(tái)服務(wù)器裝兩個(gè)數(shù)據(jù)庫,可以通過虛擬化技術(shù)實(shí)現(xiàn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
MySQL服務(wù)啟動(dòng)與停止的實(shí)現(xiàn)方式
這篇文章主要介紹了MySQL服務(wù)啟動(dòng)與停止的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06

