詳解MySQL中WHERE子句的用法
我們已經(jīng)看到SQL SELECT命令來(lái)從MySQL表獲取數(shù)據(jù)。我們可以使用一個(gè)條件子句WHERE子句中篩選出來(lái)的結(jié)果。使用WHERE子句,我們可以指定一個(gè)選擇的標(biāo)準(zhǔn)來(lái)從表中選擇所需的記錄。
語(yǔ)法:
下面是通用的SQL WHERE子句來(lái)獲取數(shù)據(jù)從MySQL表的SELECT命令的語(yǔ)法:
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命令指定條件。
就像編程語(yǔ)言中的一樣,如果條件的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ù)是用來(lái)執(zhí)行SQL命令后,另一個(gè)PHP函數(shù)mysql_fetch_array()可以用來(lái)獲取所有選定的數(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 www.dbjr.com.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分表和分區(qū)的具體實(shí)現(xiàn)方法
這篇文章主要介紹了MySQL分表和分區(qū)的具體實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06mysql建表常用sql語(yǔ)句個(gè)人經(jīng)驗(yàn)分享
熟悉一些常用的建表語(yǔ)句可以提升你建表的速度效率,本文整理了一些,個(gè)人感覺還不錯(cuò),希望對(duì)大家有所幫助2014-01-01mysql 一次向表中插入多條數(shù)據(jù)實(shí)例講解
這篇文章主要介紹了mysql 一次向表中插入多條數(shù)據(jù)實(shí)例講解的相關(guān)資料,需要的朋友可以參考下2016-10-10MySQL?分區(qū)表中分區(qū)鍵為什么必須是主鍵的一部分
這篇文章主要介紹了MySQL?分區(qū)表中分區(qū)鍵為什么必須是主鍵的一部分,分區(qū)是一種表的設(shè)計(jì)模式,通俗地講表分區(qū)是將一大表,根據(jù)條件分割成若干個(gè)小表,更多相關(guān)資料需要的小伙伴可以參考下面文章內(nèi)容2022-03-03修改MySQL數(shù)據(jù)庫(kù)中表和表中字段的編碼方式的方法
這篇文章主要介紹了如何修改MySQL數(shù)據(jù)庫(kù)中表和表中字段的編碼方式,需要的朋友可以參考下2014-05-05mysql服務(wù)1067錯(cuò)誤多種解決方案分享
今天我的mysql服務(wù)器突然出來(lái)了1067錯(cuò)誤提示,無(wú)法正常啟動(dòng)了,我今天從網(wǎng)上找尋了大量的解決mysql服務(wù)1067錯(cuò)誤的辦法,有需要的朋友可以看看2012-03-03mysql 轉(zhuǎn)換NULL數(shù)據(jù)方法(必看)
下面小編就為大家?guī)?lái)一篇mysql 轉(zhuǎn)換NULL數(shù)據(jù)方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04