mysql|変数
とても悲しいことですが、なぜこれほど多くの人が見ているのに、それについて話している人が少ないのでしょうか?
単純すぎると思って無視しますか?それとも小さな手を保ちたいですか?
ID=2131117で質問が出されました
以下の内容のテーブルがあります
id名
1 aaa
4 bbb
6 ccc
14 a1
15 a2
26 b1
以下の結果の取得方法
id名p
1 aaa 1
4 bbb 2
6 ccc 3
14 a1 4
15 a2 5
26 b1 6
これを行うには?
name スレッド固有の変数は、@variablename 構文を使用してサポートされます。変数名は、現在の文字セットの英数字と、「_」、「$」、および「.」で構成できます。デフォルトの文字セットは ISO-8859-1 Latin1 ですが、これは MySQL を再コンパイルすることで変更できます。
変数を初期化する必要はありません。デフォルトでは、これらには NULL が含まれており、整数、実数、または文字列値を格納できます。スレッドのすべての変数は、スレッドが終了すると自動的に解放されます。
SET 構文を使用して変数を設定できます:
SET @variable= { 整数式 | 文字列式 }
[,@variable= ...]。
@variable:= も使用できます。 expr 構文 式に変数を設定します:
select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+--------- -------------+------+------+------+
| @t1:=(@t2:=1)+@ t3:=4 | @t1 | @t3 |
+----------+-----+---- --+------+
| 5 | 4 |
+-----------+- ---- -+------+------+
問題の解決策:
1,
$rs = mysql_query("set @t=0");
$rs = mysql_query ("SELECT id, name,@t:=@t+1 as p FROM tbl_name");
mysql_result_all($rs);
2,
$rs = mysql_query("set @t=''");
$rs = mysql_query( "SELECT name,@t:=concat(@t,' ',name) as p FROM tbl_name");
mysql_result_all($rs);