狼头大哥,ifnull()函数的疑问;

小小小小周 2011-01-16 09:21:38
mysql> select * from en;
+------+---------+
| id | cr_name |
+------+---------+
| 1 | 北京 |
| 2 | 广州 |
| 3 | 新疆 |
+------+---------+
3 rows in set (0.00 sec)

mysql> select @a:=ifnull(@a,0)+1 from en;第一次运行
+--------------------+
| @a:=ifnull(@a,0)+1 |
+--------------------+
| 1 |
| 1 |
| 1 |
+--------------------+
3 rows in set (0.00 sec)

mysql> select @a:=ifnull(@a,0)+1 from en;第二次运行
+--------------------+
| @a:=ifnull(@a,0)+1 |
+--------------------+
| 2 |
| 3 |
| 4 |
+--------------------+
3 rows in set (0.00 sec)

mysql>

为什么第一次select的时候会否返回1;这个很令人费解;
我觉得应该是返回1 2 3..不知道为什么这样;难道是数字或是字符串的原因?
先去洗个头,等结果;
...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小小小周 2011-01-16
  • 打赏
  • 举报
回复
这么迟,还麻烦狼头大哥,和何大哥.辛苦了
小小小小周 2011-01-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]
在SELECT中只有在结束后才会把变量的定义写入系统空间。
[/Quote]
学习~~
iihero 2011-01-16
  • 打赏
  • 举报
回复
原因确实在于@a提前没有定义。
ACMAIN_CHM 2011-01-16
  • 打赏
  • 举报
回复
@a 在第一次执行前,没有定义。 这样SELECT语句在处理每一行前,都在内存空间中找不到这个变量的定义,所以返回 NULL,

而第二次,由于第一条SELECT已经对@a 进行了定义,也就开始对这个变量进行处理了。

这个例子也说明, 在SELECT中只有在结束后才会把变量的定义写入系统空间。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 过采样与欠采样构成了数字信号处理领域中两种基础的采样策略,它们在工程实践应用时各自展现出独特的长处与短处及适用情境。以下将深入阐释这两种采样方法的运作机制,并对它们在实际操作中的区别进行细致对比。 我们首先阐释过采样的核心概念。过采样(Oversampling)一般是指运用高于必要标准频率对模拟信号实施采样。举例而言,当信号频率为70MHz且信号带宽为20MHz时,依据奈奎斯特采样准则,理论上采样频率只需略高于40MHz(即信号带宽频率的两倍)即可达成无失真采样。然而,在现实操作中,系统构造者常常会采用超过140MSPS(每秒百万次采样)的采样速率,这通常超出理论所需。过采样的主要不利之处涵盖:提升ADC输出数据速率,引发FPGA的时序挑战;增大功耗、ADC及FPGA的制造成本。尽管存在这些不足,过采样依然具备其有利之处,例如可提供处理增益、频率规划的伸缩性以及能够处理更宽的信号带宽。 接下来,我们探讨欠采样的基本原理。欠采样(Undersampling)是指以低于理论标准频率对信号进行采样,这在处理高输入信号频率时尤为有效。例如,针对70MHz的中频(IF)信号,通过欠采样能够采用低于40MHz的采样频率进行采样,从而将数据速率降至FPGA,减少时序挑战,节省能量消耗和成本。实现欠采样的关键设计考量在于它能够在系统设计中达成所需的ADC动态性能。 欠采样的优势体现为能够简化硬件构造,比如降低对高速数据捕获的需求,并且在设计条件允许时,可选用较慢的ADC来削减成本。然而,欠采样技术也存在其局限性,例如在ADC的非理想表现可能导致非线性失真,诸如二阶(HD2)和三阶(HD3)谐...
内容概要:本文系统介绍了基于TI TMS320C5416芯片设计IIR带阻和陷波滤波器的方法,重点采用双线性变换法(BLT)和极点-零点配置法进行数字滤波器的设计。文档涵盖滤波器设计的理论基础、关键参数设定、Matlab代码实现流程以及在DSP硬件平台上的部署思路,帮助读者掌握从模拟原型设计到数字映射,再到硬件实现的完整技术链条。同时强调通过Matlab仿真验证滤波器频率响应特性,并指导如何将算法移植至TMS320C5416平台实现实际信号处理功能; 适合人群:具备数字信号处理基础理论知识和Matlab编程能力,从事通信系统、音频处理、嵌入式开发等相关领域的研究生及工程技术人员; 使用场景及目标:①深入理解IIR滤波器设计的核心原理,特别是双线性变换法避免频率混叠的优势;②掌握通过极点-零点布局设计特定频率响应的带阻与陷波滤波器;③实现对特定干扰频率的有效抑制,如工频干扰去除;④完成从Matlab算法仿真到TMS320C5416 DSP平台的代码移植与实时验证; 阅读建议:建议读者结合所提供的Matlab代码动手实践滤波器设计全过程,深入理解每一步背后的数学推导与物理意义,并尝试调整滤波器参数观察性能变化,最终将设计成果部署到实际DSP系统中进行测试与优化。

57,064

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧