《Mysql應用msql select語句的WHERE子句詳解》要點:
本文介紹了Mysql應用msql select語句的WHERE子句詳解,希望對您有用。如果有疑問,可以聯系我們。
1,WHERE子句
?
??? 在SELECT語句中,語句首先從FROM子句開始執行,執行后會生成一個中間成果集,然后就開始執行WHERE子句.
???
??? WHERE子句是對FROM子句生成的成果集進行過濾,對中間成果集的每一行記錄,WHERE子句會返回一個布爾值,(TRUE/FALSE),如果TURE,這行記錄繼續留在成果集中,如果FALSE,則這行記錄從成果集中移除.
例如:
?MYSQL必讀
FROM子句返回的中間成果集:
?MYSQL必讀
總共4行記錄,對每一行記錄執行WHERE子句.第一行中studentNO是1,所以studentNO=2表達式返回值為FALSE,這行記錄移除.第二行中studentNO是2,所以studentNO=2返回TRUE,這行記錄繼續保存;同理第三行和第四行記錄也移除,執行完WHERE語句后的中間結果集為:
?MYSQL必讀
然后執行SELECT語句,最終的成果集為:
?MYSQL必讀
2,比擬運算符
WHERE子句返回布爾值,所以WHERE子句經常會用到比擬運算符.MYSQL必讀
比擬運算符有:
?MYSQL必讀
2=2的結果為true,15<9的結果為false,3>2的結果為true,5!=4的結果為true.
字符串也可以進行比擬,'b'<'g'的結果為true,'h'>'k'的結果為false.
時間值可以比擬,較早的時間小于較晚的時間.'1980-5-4'<'1990-02-15'的結果為true,'1991-2-18'>'1991-2-19'的結果為false.
=比擬符與<=>比擬符的差別在于,當比擬兩個空值的時候,=返回unknown,<=>返回為true.
?
3,子查詢中的比擬運算符
例句:
?MYSQL必讀
一個子查詢可以用于WHERE子句中.上例中是一個標量子查詢,子查詢只能返回一個標量值.MYSQL必讀
同樣一個行子查詢也可以用于WHERE子句中:
?MYSQL必讀
4,不帶比擬運算符的WHERE子句
WHERE子句并不一定帶比擬運算符,當不帶運算符時,會執行一個隱式轉換.當0時轉化為false,當其他值是轉化為true.MYSQL必讀
例句:
?MYSQL必讀
則會返回一個空集,因為每一行記載WHERE都返回false.MYSQL必讀
例句:
?MYSQL必讀
都將返回student表所有行記載的studentNO列.因為每一行記載WHERE都返回true.MYSQL必讀
《Mysql應用msql select語句的WHERE子句詳解》是否對您有啟發,歡迎查看更多與《Mysql應用msql select語句的WHERE子句詳解》相關教程,學精學透。維易PHP學院為您提供精彩教程。