ホームページ > データベース > mysql チュートリアル > MySQLでif文を使用する方法

MySQLでif文を使用する方法

little bottle
リリース: 2019-04-28 13:18:00
転載
38706 人が閲覧しました

Mysql の if は、ストアド プロシージャの式またはプロセス制御ステートメントとして使用できます。この記事では主に、mysql での if ステートメントの通常の使用について説明します。これには一定の学習価値があります。興味のある友人は、調べることができます。 。

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 != ""
ログイン後にコピー

If は、次の場合に CASE を使用して式として実装することもできます。

select CASE sva WHEN 1 THEN &#39;男&#39; ELSE &#39;女&#39; END as ssva from taname where sva != &#39;&#39;
ログイン後にコピー

最初のソリューションの戻り結果では、value=compare-value になります。 2 番目のシナリオの戻り結果は、最初のシナリオの真の結果です。一致する結果値がない場合は ELSE 以降の結果が返され、ELSE 部分がない場合は NULL が返されます。

例:

SELECT CASE 1 WHEN 1 THEN &#39;one&#39;
  WHEN 2 THEN &#39;two&#39; 
   ELSE &#39;more&#39; ENDas testCol
ログイン後にコピー

は 1 つを出力します

IFNULL(expr1,expr2)

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,&#39;yes&#39;);
        -> &#39;yes&#39;
ログイン後にコピー

IFNULL(expr1,expr2) デフォルトの結果値は、STRING、REAL、または INTEGER の順で、2 つの式のうち、より「一般的」な値になります。

IF ELSE

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,&#39;A&#39;;  elseif stu_grade<90 and stu_grade>=80 then 
    select stu_grade,&#39;B&#39;;  elseif stu_grade<80 and stu_grade>=70 then 
    select stu_grade,&#39;C&#39;;  elseif stu_grade70 and stu_grade>=60 then 
    select stu_grade,&#39;D&#39;;  else 
    select stu_grade,&#39;E&#39;;  end if;  END
ログイン後にコピー

注: IF はステートメントであり、ステートメントの終わりを示すために END IF の後にセミコロン「;」を追加する必要があります。 CASE、LOOP などの他のステートメントにも当てはまります。

関連チュートリアル: mysql ビデオ チュートリアル

以上がMySQLでif文を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート