Mysql の if は、ストアド プロシージャの式またはプロセス制御ステートメントとして使用できます。この記事では主に、mysql での if ステートメントの通常の使用について説明します。これには一定の学習価値があります。興味のある友人は、調べることができます。 。
IF(expr1,expr2,expr3)
expr1 が TRUE の場合 (expr1 <> 0 および expr1 < > ; NULL)、IF() の戻り値は expr2 であり、それ以外の場合、戻り値は expr3 です。 IF() の戻り値は、コンテキストに応じて数値または文字列値のいずれかになります。
select *,if(sva=1,"男","女") as ssva from taname where sva != ""
select CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where sva != ''
最初のソリューションの戻り結果では、value=compare-value になります。 2 番目のシナリオの戻り結果は、最初のシナリオの真の結果です。一致する結果値がない場合は ELSE 以降の結果が返され、ELSE 部分がない場合は NULL が返されます。
例:
SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' ENDas testCol
は 1 つを出力します
expr1 が NULL でない場合、IFNULL() の戻り値は expr1; それ以外の場合、戻り値は expr2 です。 IFNULL() の戻り値は、使用されるコンテキストに応じて、数値または文字列のいずれかになります。
mysql> SELECT IFNULL(1,0); -> 1mysql> SELECT IFNULL(NULL,10); -> 10mysql> SELECT IFNULL(1/0,10); -> 10mysql> SELECT IFNULL(1/0,'yes'); -> 'yes'
IFNULL(expr1,expr2)
デフォルトの結果値は、STRING、REAL、または INTEGER の順で、2 つの式のうち、より「一般的」な値になります。
if をプロセス制御ステートメントとして使用して、条件判断を実装し、さまざまな条件が満たされたときにさまざまな操作を実行します。プログラミングを学習している限り、if の役割は誰もが知っています。 mysql ストアド プロシージャで if がどのように使用されるかを見てみましょう。
IF search_condition THEN statement_list [ELSEIF search_condition THEN] statement_list ... [ELSE statement_list] END IF
はPHPのIF文と似ており、IFのsearch_condition条件が成立した場合はTHEN以降のstatement_list文が実行され、それ以外の場合はELSEIFの条件が判定され、成立した場合は後続のstatement_list文が実行されます。ステートメントが実行され、それ以外の場合は他のステートメントが継続されます。すべての分岐の条件が満たされない場合、ELSE 分岐が実行されます。 search_condition は条件式であり、「=、<、<=、>、>=、!=」などの条件演算子で構成でき、 AND、OR、NOT を使用して複数の式を組み合わせることができます。
たとえば、学生番号 (student_no) とコース番号 (course_no) を使用して学生の成績 (grade) をクエリし、成績と成績を返すストアド プロシージャを作成します。成績が 90 ポイントを超えるものは次のとおりです。 A 90点未満かつ80点以上のものをBグレード、80点未満かつ70点以上のものをCグレード、以下Eグレードとします。次に、ストアド プロシージャを作成するコードは次のとおりです:
create procedure dbname.proc_getGrade (stu_no varchar(20),cour_no varchar(10)) BEGIN declare stu_grade float; select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no; if stu_grade>=90 then select stu_grade,'A'; elseif stu_grade<90 and stu_grade>=80 then select stu_grade,'B'; elseif stu_grade<80 and stu_grade>=70 then select stu_grade,'C'; elseif stu_grade70 and stu_grade>=60 then select stu_grade,'D'; else select stu_grade,'E'; end if; END
注: IF はステートメントであり、ステートメントの終わりを示すために END IF の後にセミコロン「;」を追加する必要があります。 CASE、LOOP などの他のステートメントにも当てはまります。
関連チュートリアル: mysql ビデオ チュートリアル
以上がMySQLでif文を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。