この記事では、MySQL における if ステートメントと case ステートメントの使用方法について概要を紹介します。この記事では、式やフロー制御ステートメントとしての IF ステートメントの使用方法について説明します。必要な方は参考にしてください。
Mysql の if は、式またはストアド プロシージャ内のプロセス制御ステートメントとして使用できます。次は式として使用されます:
IF 式
IF(expr1,expr2,expr3)
If expr1 is TRUE ( expr1 <>) ; 0 および expr1 <> NULL)、IF() の戻り値は expr2 です。それ以外の場合、戻り値は expr3 です。 IF() の戻り値は、コンテキストに応じて数値または文字列値のいずれかになります。式としての
select *,if(sva=1,"男","女") as ssva from taname where sva != ""
if は、CASE when を使用して実装することもできます。
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' END as testCol
は 1 つを出力します
IFNULL(expr1,expr2)
expr1 が NULL でない場合、IFNULL() の戻り値は expr1 であり、それ以外の場合、その戻り値は expr2 です。 IFNULL() の戻り値は、使用されるコンテキストに応じて数値または文字列のいずれかになります。
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'yes'); -> 'yes'
IFNULL(expr1,expr2) のデフォルトの結果値は、STRING、REAL、INTEGER の順で、2 つの式のうち、より「一般的」な値です。
IF ELSE はプロセス制御ステートメントとして使用されます。
if は条件判定を実装し、さまざまな条件が満たされた場合にさまざまな演算を実行します。プログラミングを学習している限り、if の役割を見てみましょう。 mysqlストアドプロシージャの使い方。
IF search_condition THEN statement_list [ELSEIF search_condition THEN] statement_list ... [ELSE statement_list] END IF
はPHPのIF文と似ており、IFのsearch_conditionがtrueの場合はTHEN以降のstatement_list文が実行され、それ以外の場合はELSEIFの条件がtrueの場合は後続の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などのステートメント。
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
以上がMySQL での if ステートメントと case ステートメントの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。