1.between語句:
mysql>?select?*?from?4a?where?score?between?76?and?89; +--------+------+--------+------+--------+------+------+-------+ |?sname??|?sage?|?tname??|?t????|?cname??|?s????|?c????|?score?| +--------+------+--------+------+--------+------+------+-------+ |?劉一???|???18?|?賀高???|????2?|?數學???|????1?|????2?|????78?| |?錢二???|???19?|?葉平???|????1?|?語文???|????2?|????1?|????79?| |?錢二???|???19?|?賀高???|????2?|?數學???|????2?|????2?|????81?| |?張三???|???17?|?楊艷???|????3?|?英語???|????3?|????3?|????88?| |?李四???|???18?|?賀高???|????2?|?數學???|????4?|????2?|????88?| |?王五???|???17?|?楊艷???|????3?|?英語???|????5?|????3?|????78?| +--------+------+--------+------+--------+------+------+-------+ 6?rows?in?set?(0.02?sec)
mysql>?select?*?from?4a?where?score?between?78?and?88; +--------+------+--------+------+--------+------+------+-------+ |?sname??|?sage?|?tname??|?t????|?cname??|?s????|?c????|?score?| +--------+------+--------+------+--------+------+------+-------+ |?劉一???|???18?|?賀高???|????2?|?數學???|????1?|????2?|????78?| |?錢二???|???19?|?葉平???|????1?|?語文???|????2?|????1?|????79?| |?錢二???|???19?|?賀高???|????2?|?數學???|????2?|????2?|????81?| |?張三???|???17?|?楊艷???|????3?|?英語???|????3?|????3?|????88?| |?李四???|???18?|?賀高???|????2?|?數學???|????4?|????2?|????88?| |?王五???|???17?|?楊艷???|????3?|?英語???|????5?|????3?|????78?| +--------+------+--------+------+--------+------+------+-------+ 6?rows?in?set?(0.00?sec)
由這兩個例子我們可以看出between子句執行時取值范圍時是包括它的邊界值的。
2.or語句:
mysql>?select?*?from?4a?where?score=78?or?score=88?or?score>88?or?score<p>通過這個例子我們可以看出:一個<a style="color:#f60; text-decoration:underline;" title="mysql" href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>語句中可以有許多個or子句。</p><p>3.in語句:</p><pre class="brush:sql;toolbar:false">mysql>?select?*?from?4a?where?score?in?(78,93); +--------+------+--------+------+--------+------+------+-------+ |?sname??|?sage?|?tname??|?t????|?cname??|?s????|?c????|?score?| +--------+------+--------+------+--------+------+------+-------+ |?劉一???|???18?|?賀高???|????2?|?數學???|????1?|????2?|????78?| |?李四???|???18?|?周磊???|????4?|?物理???|????4?|????4?|????93?| |?王五???|???17?|?楊艷???|????3?|?英語???|????5?|????3?|????78?| |?NULL???|?NULL?|?NULL???|?NULL?|?NULL???|?NULL?|?NULL?|????93?| +--------+------+--------+------+--------+------+------+-------+ 4?rows?in?set?(0.00?sec)
mysql>?select?*?from?4a?where?score?in?(score>60); Empty?set?(0.00?sec)
看來in語句只能對括號內的具體的某條或某幾條記錄進行匹配,而無法對其進行邏輯匹配。
mysql>?select?*?from?4a?where?score>85; +--------+------+--------+------+--------+------+------+-------+ |?sname??|?sage?|?tname??|?t????|?cname??|?s????|?c????|?score?| +--------+------+--------+------+--------+------+------+-------+ |?錢二???|???19?|?楊艷???|????3?|?英語???|????2?|????3?|????92?| |?張三???|???17?|?葉平???|????1?|?語文???|????3?|????1?|????91?| |?張三???|???17?|?楊艷???|????3?|?英語???|????3?|????3?|????88?| |?李四???|???18?|?賀高???|????2?|?數學???|????4?|????2?|????88?| |?李四???|???18?|?楊艷???|????3?|?英語???|????4?|????3?|????90?| |?李四???|???18?|?周磊???|????4?|?物理???|????4?|????4?|????93?| |?NULL???|?NULL?|?NULL???|?NULL?|?NULL???|?NULL?|?NULL?|????93?| +--------+------+--------+------+--------+------+------+-------+ 7?rows?in?set?(0.00?sec)
顯然where的功能要比in強大得多,因此where的命令優先級也比高一些。而相同條件下where的搜尋范圍也比in要大一點—畢竟功能多了,要搜尋的東西就多了。所以,相同的查詢條件下where的效率會比in稍微差一點點,當然也僅僅是一點點而已。當然由于in的命令優先級較where低,所以用in的話SQL語句也更容易報錯。
and語句:
mysql>?select?*?from?4a?where?(score>85?and?sage=18)?and?t=2; +--------+------+--------+------+--------+------+------+-------+ |?sname??|?sage?|?tname??|?t????|?cname??|?s????|?c????|?score?| +--------+------+--------+------+--------+------+------+-------+ |?李四???|???18?|?賀高???|????2?|?數學???|????4?|????2?|????88?| +--------+------+--------+------+--------+------+------+-------+ 1?row?in?set?(0.00?sec)
通過這個例子我們可以看出:一個mysql語句中可以有許多個and子句。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END