[前][次][番号順一覧][スレッド一覧]

mysql:14870

From: 柴垣 <柴垣 <akiro@xxxxxxxxxx>>
Date: Fri, 22 May 2009 09:16:27 +0900
Subject: [mysql 14870] Re: @変数の動作について

NKさん、返信ありがとうございます。


> 同一セッションで2回目実行時に期待する結果になっているのは、
> 前回実行の最後にセットしている"c"が残っているからのようです。


当初から、mysql> set @code='x'; 等はその都度実行していたのですが、
投稿時には抜け落ちてしまっていました。申し訳ありませんでした。

 メールのコードを私の環境で実行したのですが、やはり以下のように
なります。送っていただいた結果と比較すると、@code の値が違います。
抽出と並べ替えの順番が違っているのでしょうか。


set @code="";
select @code,if(T.code=@code,'same','new') as
Mark,@code:=T.code as Code,M.name
from T left join M on T.code=M.code order by T.code;
+-------+------+------+------+
| @code | Mark | Code | name |
+-------+------+------+------+
|       | new  | a    | ASM  |
| b     | new  | a    | ASM  |
| b     | new  | a    | ASM  |
| a     | new  | b    | BAS  |
| c     | new  | b    | BAS  |
| a     | new  | c    | COM  |
| a     | new  | c    | COM  |
+-------+------+------+------+
7 rows in set (0.00 sec)


こちらの環境は、WindowsXP 
mysql  Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
Server version:5.0.45-community-nt MySQL Community Edition (GPL)
です。


> ユーザ変数を使用される前に、初期化すると初回実行時でも期待されて
> いる結果にはなりました。
> 
> mysql> set @code="";select @code,if(T.code=@code,'same','new') as
> Mark,@code:=T.code as Code,M.name
> from T left join M on T.code=M.code order by T.code;
> Query OK, 0 rows affected
> 
> +-------+------+------+------+
> | @code | Mark | Code | name |
> +-------+------+------+------+
> |       | new  | a    | ASM  |
> | a     | same | a    | ASM  |
> | a     | same | a    | ASM  |
> | a     | new  | b    | BAS  |
> | b     | same | b    | BAS  |
> | b     | new  | c    | COM  |
> | c     | same | c    | COM  |
> +-------+------+------+------+
> 7 rows in set

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

 柴垣  akiro@xxxxxxxxxx

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



[前][次][番号順一覧][スレッド一覧]

     14868 2009-05-22 00:44 [柴垣 <akiro@xxxxxxxx] @変数の動作について                     
     14869 2009-05-22 01:44 ┗["N.K." <nakai.kanako]                                       
->   14870 2009-05-22 09:16  ┗[柴垣 <akiro@xxxxxxxx]                                     
     14871 2009-05-22 09:50   ┗["N.K." <nakai.kanako]                                   
     14872 2009-05-22 12:06    ┗[柴垣 <akiro@xxxxxxxx]