对于开发来说重要的是按照规范进行开发。

昨天自己在进行开发测试的时候,编写mysql 的一个存储过程 ,代码是比较简单的

就是根据名称查询对应的数据并返回

DELIMITER //

CREATE PROCEDURE proc1(name int)

BEGIN

select * from table_name where name=name;

END

//

大家可能注意到了一个变量名称 name 因为我的数据库中的一个字段的名称也是name

按照传统编程语言传递参数的特点查询应该是没有问题的,但是因为是sql ,结果我的查询时显示全部的数据,按照这样的话

mysql 中的解释一样是这样的,在sql 中 因为name=name 永远为真 所以是全部的数据。

一般在mysql 中用户的变量使用@字符开始。

所以在开发的过程中还是按照规范开发会比较好,会减少很多看似怪异的显现。

这种情况在oracel 中也是存在的,但是在sql serve 中就不会了,因为sql serve 的用户变量必须使用@ 符号。

附oracle 的测试:

对于oracle 中的sql 测试代码如下:

declare
name VARCHAR2(20);
V_id VARCHAR2(20);
begin
name:='class13';
select id into V_id from firstclass where name=name;
dbms_output.put_line(V_id);
end;

提示的错误如下:

原因与mysql 是类似的。

修改一下名称即可。

mysql 变量名称的使用不当的一个错误的更多相关文章

  1. mysql 变量名称不能与表字段一致

    my sql的变量名称不能与表字段名称相同不然会有各种异常问题 啃爹

  2. Error parsing column 8 (IsRecommended=0 - SByte) Dapper查询mysql数据库可空的tinyint(1)一个错误

    出错条件: 1.实体属性为bool?类型 2.对应字段为可空的tinyint(1)类型 3.该字段查询结果内即含有null,又含有正常值 google答案,两种建议: 1.修改sql语句,直接cast ...

  3. 定义一个Person类,其中包括:1.定义属性:姓名、年龄、民族作为成员变量。定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化。3.定义多个方法:分别显示相应的属性值,例如getName(){System.out.print("名称="+name+";"); }4.定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1

    题目显示不全,完整题目描述: (1)定义一个Person类,其中包括:1.定义属性:姓名:年龄:民族作为成员变量.定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化.3.定义多个方法:分别显 ...

  4. MySql变量,

    http://blog.csdn.net/rdarda/article/details/7878836 1.变量的定义 在Mysql里面可以像我们写代码中一样定义变量来保持中间结果,看下面的格式: [ ...

  5. MySQL变量介绍和用法简介

    目录 一.用户变量 1.1.用户变量定义 1.2.用户变量用法 二.系统变量 2.1 系统变量简单介绍 2.2 系统变量用法简介 本博客介绍一下MySQL中变量的用法和注意细节 @ 一.用户变量 1. ...

  6. 【转】 C# 小技巧之获取变量名称

    link: http://www.cnblogs.com/gongy/p/lm-2015-04-03.html 今天在自我规范程序设计的时候,变量名匹配字符串来自配置文件,网上找了一会儿发现也有朋友在 ...

  7. FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...

  8. mysql变量使用总结

    set语句的学习: 使用select定义用户变量的实践将如下语句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: sele ...

  9. mysql变量使用总结(转)

    set语句的学习: 使用select定义用户变量的实践将如下语句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: sele ...

随机推荐

  1. Confluence 6 嵌套用户组的影响

    本部分说明了嵌套用户组对用户登录,权限和查看更新用户组的影响. 登录 如果用户属于一个授权的用户组或者授权用户组中的子用户组,当用户登录后,用户可以访问应用程序. 权限 如果用户属于的用户组或者用户组 ...

  2. vijos1746 floyd

    小D的旅行 旅行是一件颇有趣的事情,但是在旅行前规划好路线也很重要. 现在小D计划要去U国旅行. U国有N个城市,M条道路,每条道路都连接着两个城市,并且经过这条道路需要一定的费用wi. 现在小D想要 ...

  3. oracle11g在没DNS情况下failover的配置方法

    1.Oracle 11g引入scan ip ,可在没有DNS的情况下,客户端连接RAC配置failover时,很多情况还是使用oracle10g方式.即在客户端tnsname.ora中配置failov ...

  4. forget word out a~4

    1● ana 错误,分开   2● ante   先,前面   3● anti 反对,相反       1◆ ana 2◆ ante 3◆ anti     1● dem(o) 2● pupl 3● ...

  5. linux processes identifiers

    Linux, like all Unix uses user and group identifiers to check for access rights to files and images ...

  6. 什么是REST API?

    REST指一组架构约束条件和原则,满足约束条件和原则的应用程序设计.架构,软件体系结构分为三部分:构建,用于描述计算机:连接器,用于描述构建的链接部分:配置将构建和连接器组成有机整体.web基本技术: ...

  7. docker小demo

    http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html

  8. 获取jsp选中复选框的id传到后台controller,进行逻辑删除等操作

    逻辑删除设备:(数据表中还有这条记录,不显示出来) 思路: 数据表加个字段display,值为Y/N,只显示display为Y的,删除时,把display的值改为N,就不会显示出来 jsp页面如下图, ...

  9. axios 拦截 , 页面跳转, token 验证

    第一步: 路由 多添加一个自定义字段 requireAuth path: '/repository', name: 'repository', meta: { requireAuth: true, / ...

  10. 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<2,下载彩信>)

    彩信的接收简介: 主要是由应用程序负责从彩信服务中心(MMSC Multimedia Messaging Service Center)下载彩信信息.大致的流程是Frameworks会先发出一条短信, ...