MySQL使用IF函數(shù)動態(tài)執(zhí)行where條件的方法
IF函數(shù)
IF(expression ,expr_true, expr_false);
MySQL的IF()函數(shù),接受三個表達式,如果第一個表達式為true,而不是零且不為NULL,它將返回第二個表達式。否則,它返回第三個表達式。根據(jù)使用它的上下文,它返回數(shù)字或字符串值。
IF函數(shù)在WHERE條件中的使用
先來看一個SQL:
select book_name,read_status from t_book;
結(jié)果如下:

read_status字段意思是閱讀狀態(tài),有以下幾個值: 0(未閱讀),1(閱讀中),2(已閱讀)。
下面使用IF函數(shù)來查詢:
# 查詢未閱讀的book select book_name,read_status from t_book where IF(-1 = 0, true, read_status = 0);

# 查詢閱讀中的book select book_name,read_status from t_book where IF(-1 = 1, true, read_status = 1);

# 查詢已閱讀的book select book_name,read_status from t_book where IF(-1 = 2, true, read_status = 2);

# 查詢?nèi)康腷ook select book_name,read_status from t_book where IF(-1 = -1, true, read_status = -1);

JAVA使用
/**
* 根據(jù)閱讀狀態(tài)來查詢book
* @param readStatus
* @return
*/
@Query(value = "select book_name,read_status from t_book where IF(-1 = :readStatus, true, read_status = readStatus)", nativeQuery = true)
List<TBook> queryByReadStatus(@Param("readStatus") String readStatus);這樣可以通過傳入readStatus的值來控制是否執(zhí)行read_status條件,當傳值為-1時,不執(zhí)行read_status = -1 條件,而是執(zhí)行 true,相當于忽略了read_status條件,達到查詢?nèi)繝顟B(tài)的book目的。
到此這篇關(guān)于MySQL使用IF函數(shù)來動態(tài)執(zhí)行where條件的文章就介紹到這了,更多相關(guān)MySQL動態(tài)執(zhí)行where條件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql?InnoDB聚簇索引二級索引聯(lián)合索引特點
這篇文章主要為大家介紹了Mysql?InnoDB聚簇索引二級索引聯(lián)合索引特點詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
idea 設(shè)置MySql主鍵的實現(xiàn)步驟
在IDE開發(fā)工具中也是可以使用mysql的,本文主要介紹了idea 設(shè)置MySql主鍵的實現(xiàn)步驟,文中通過圖文的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2024-03-03
利用Mysql定時+存儲過程創(chuàng)建臨時表統(tǒng)計數(shù)據(jù)的過程
這篇文章主要介紹了利用Mysql定時+存儲過程創(chuàng)建臨時表統(tǒng)計數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
Keepalived+HAProxy實現(xiàn)MySQL高可用負載均衡的配置
這篇文章主要介紹了keepalived+haproxy實現(xiàn)MySQL高可用負載均衡的配置方法,通過這兩個軟件可以有效地使MySQL脫離故障及進行健康檢測,需要的朋友可以參考下2016-02-02
MySQL主從同步設(shè)置中主服務(wù)器二進制日志無法開啟的問題
這篇文章主要介紹了MySQL主從同步設(shè)置中主服務(wù)器二進制日志無法開啟的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
兩種方法實現(xiàn)mysql分組計數(shù),范圍匯總
這篇文章主要介紹了兩種方法實現(xiàn)mysql分組計數(shù),范圍匯總,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下2020-07-07

