动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 mysql的用户变量

作者来源: 
阅读 1490 人次 , 2006-3-29 4:08:00 


我觉得很悲哀,为什么看的人多,说的人少呢。
是觉得太简单而不屑一顾呢?还是想留一小手呢?

问题的提出 id=2131117
有一个表,内容如下
id name
1  aaa
4  bbb
6  ccc
14  a1
15  a2
26  b1
怎样做才能得到如下结果
id name p
1 aaa 1
4 bbb 2
6 ccc 3
14 a1  4
15 a2  5
26 b1  6
又怎样做,才能这样?
name p
aaa aaa
bbb aaa bbb
ccc aaa bbb ccc
a1 aaa bbb ccc a1
a2 aaa bbb ccc a1 a2
b1 aaa bbb ccc a1 a2 b1

mysql支持线程特定的变量,用@variablename句法。一个变量名可以由当前字符集的数字字母字符和“_”、“$”和“.”组成。缺省字符集是iso-8859-1 latin1;这可以通过重新编译mysql改变。
变量不必被初始化。缺省地,他们包含null并能存储整数、实数或一个字符串值。当线程退出时,对于一个线程的所有变量自动地被释放。

你可以用set句法设置一个变量:

set @variable= { integer expression | real expression | string expression }
[,@variable= ...].

你也可以用@variable:=expr句法在一个表达式中设置一个变量:

select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----------------------+------+------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2 | @t3 |
+----------------------+------+------+------+
| 5 | 5 | 1 | 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);

 本文Tagsmysql  数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:计算工作日
· 下一篇:日历类
· 加固PHP环境
· PHP生成动态WAP页面
· SQL Server和Oracle防止数据锁定的比较
· 关于jpGraph的中文显示
· 轻量级的xml文档生成类


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077