欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL使用IF函數(shù)動(dòng)態(tài)執(zhí)行where條件的方法

 更新時(shí)間:2022年09月27日 10:46:02   作者:不忘初心,砥礪前行  
這篇文章主要介紹了MySQL使用IF函數(shù)來動(dòng)態(tài)執(zhí)行where條件,詳細(xì)介紹了IF函數(shù)在WHERE條件中的使用,MySQL的IF()函數(shù),接受三個(gè)表達(dá)式,如果第一個(gè)表達(dá)式為true,而不是零且不為NULL,它將返回第二個(gè)表達(dá)式,需要的朋友可以參考下

IF函數(shù)

IF(expression ,expr_true, expr_false);

MySQL的IF()函數(shù),接受三個(gè)表達(dá)式,如果第一個(gè)表達(dá)式為true,而不是零且不為NULL,它將返回第二個(gè)表達(dá)式。否則,它返回第三個(gè)表達(dá)式。根據(jù)使用它的上下文,它返回?cái)?shù)字或字符串值。

IF函數(shù)在WHERE條件中的使用

先來看一個(gè)SQL:

select book_name,read_status from t_book;

結(jié)果如下:

read_status字段意思是閱讀狀態(tài),有以下幾個(gè)值: 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條件,當(dāng)傳值為-1時(shí),不執(zhí)行read_status = -1 條件,而是執(zhí)行 true,相當(dāng)于忽略了read_status條件,達(dá)到查詢?nèi)繝顟B(tài)的book目的。

到此這篇關(guān)于MySQL使用IF函數(shù)來動(dòng)態(tài)執(zhí)行where條件的文章就介紹到這了,更多相關(guān)MySQL動(dòng)態(tài)執(zhí)行where條件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論