mysql 存储过程总结(二)if语句、参数

上周,我正在学习编码的朋友提到了他们公司的一个项目。
他们使用if语句来判断结果的级别,但是结果是固定的,只显示级别而不能返回。
他想动态地传递结果,以便也可以返回关卡。
我说,这不是问题,这个可以用参数来实现。

2 02 3 年,你了解到参数有三种类型:IN、OUT、INOUT。
IN为输入参数,OUT为输出参数,INOUT既可以是输入也可以是输出。

朋友听后问:“怎么用?”我已经举了一个例子,例如有一个函数接受结果并返回级别。

情况 1 :如果分数是 8 5 分,我们希望函数返回“good”。

情况 2 :如果结果是 5 8 分,我们希望函数返回“失败”。

然后我补充说,OUT参数就是用来返回这类信息的。
这样,他们可以在函数中定义 OUT 参数并动态返回结果级别。
听完,他似乎明白了,说道:“我明白了,我会努力的。
”我也说:“找出来,加油!”忘了它。

mysql中any的用法

只要满足一行,ANY 就会返回 TRUE。
俗话说:只要发现一条数据符合条件,就认为是成立的。

示例:工资比销售部门任何人都高。
例如,员工工资为1 0000,销售部门最低工资为9 000,则选择该选项。

子查询必须有单列。
例如,ANY (SELECT工资FROM员工WHERE部门=‘销售’),查询只能返回工资列。

子查询不能返回 NULL。
例如> ANY(NULL),结果不确定,最好使用> ANY(COALESCE(value, 0))。

比 IN 和 EXIST 慢。
当您使用 ANY 时,数据库必须执行两个查询。
使用 JOIN 或 EXISTS 速度更快。

自己掂量一下。

示例讲解Mysql怎么查询大于指定值的数据

说实话,当我第一次接触MySQL时,我被WHERE子句困住了。
例如,要检查分数超过 8 0 分的学生,只需选择分数 > 8 0 的学生即可。
结果会返回整行数据,包括ID、Name等。
当时我很兴奋,觉得这个东西真的很简单。

但有趣的是,后来我发现有时在检查数据时会出现错误。
我记得有一次我写了一个查询,显然我想找到3 0岁以上的人,但结果却是年龄>3 00。
当时数据库给我返回了一堆错误,这让我怀疑自己的人生。
后来我意识到这个东西是类型敏感的——如果你想查一个数字,就给它一个数字,不要对字符串进行四舍五入,否则MySQL会和你竞争,甚至可能会影响性能。
有一次我尝试像这样写score > '8 0',但结果是类型不匹配。
实在是太震撼了。

另一个例子是检查日期。
例如,如果我想查找 2 02 3 年 1 月 1 日之后注册的用户,我必须编写 create_at > '2 02 3 -01 -01 '。
请注意,字符串日期用单引号引起来。
如果你直接写create_at > 2 02 3 -01 -01 ,MySQL会认为你在做数学,就会出错。

空白结果也很烦人。
我遇到过这个奇怪的事情:我知道数据应该在那里,但查询没有结果。
后来我发现我要么输入了错误的值,比如8 0而不是8 00;或者表中只有一个符合条件有的,而且数量非常少。
此时,我习惯先用SELECT COUNT()来统计一下,以确保数据量没问题。

对于扩展应用程序,我使用了>=。
例如,如果你想检查分数是否在 8 0 到 9 0 之间,只需写 SCORE >= 8 0 和 SCORE <= 9 0,或者使用 BETWEEN 更简洁。
我曾经搜索过3 0岁到5 0岁之间的用户,使用BETWEEN书写非常直观,所以不容易出错。

实际上,如果你经常使用它,你就会习惯它。
WHERE子句中有两个要点:一是使用正确的比较器,二是类型必须匹配。
想想看,如果MySQL都处理不了,你怎么能信任它来存储数据呢?