IF関数
IF(式、expr_true、expr_false);
MySQLのIF()関数は3つの式を受け入れます。最初の式が真で、ゼロでもNULLでもない場合、2番目の式を返します。それ以外の場合は、3番目の式を返します。使用されるコンテキストに応じて、数値または文字列値を返します。
WHERE条件でのIF関数の使用
最初にSQLを見てください。
t_book から book_name、read_status を選択します。
結果は次のとおりです。
read_statusフィールドはステータスの読み取りを意味し、次の値があります:0(未読)、1(読み取り中)、および2(読み取り中)。
次に、IF関数を使用してクエリを実行します。
#未読問い合わせ予約 SELECT BOOK_NAME、READ_STATUS から t_book WHERE IF(- 1 = 0、trueに、READ_STATUS = 0)。
#で問い合わせ読書 SELECT BOOK_NAME、READ_STATUS から t_book WHERE IF(- 1 = 1 trueに、READ_STATUS = 1)。
#クエリは予約を読み取り有する SELECT、READ_STATUS BOOK_NAMEをから t_book WHERE IF(- 1 = 2、trueに、READ_STATUS = 2)。
#查询全部的ブック 選択 BOOK_NAME、READ_STATUS から t_book ここ IF(- 1 = - 1、真、READ_STATUS = - 1)。
JAVAの使用
/ ** *に基づいてブック * @param readStatus * @return * / @Query(value = "select book_name、read_status from t_book where IF(-1 =:readStatus、true、read_status = readStatus)"、nativeQuery = true ) リスト <TBook> queryByReadStatus(@Param( "readStatus")String readStatus);
このようにして、readStatusの値を渡すことにより、read_status条件を実行するかどうかを制御できます。値が-1の場合、read_status = -1条件は実行されませんが、trueになります。 。