mysql数据库条件判断查询语句的常见写法说明

大家都知道只有的了mysql 5后才出现了存储过程,这些用法,那么我们要在sql 中用if else while这些,就得用存过程或函数来实例了。

mysql> DELIMITER //
mysql> CREATE FUNCTION myFunction (quantity INT(10)) RETURNS INT(10)
    -> BEGIN
    ->
    ->     WHILE quantity MOD 12 > 0 DO
    ->     SET quantity = quantity + 1;
    ->     END WHILE;
    ->
    ->     RETURN quantity;
    ->
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;
mysql>
mysql> select myFunction(10);
+----------------+
| myFunction(10) |
+----------------+
|             12 |
+----------------+
1 row in set (0.00 sec)

mysql>
mysql> select myFunction(24);
+----------------+
| myFunction(24) |
+----------------+
|             24 |
+----------------+
1 row in set (0.00 sec)

实例二

mysql> delimiter //
mysql> create procedure test_while (IN in_count INT)
    -> BEGIN
    ->     declare count INT default 0;
    ->
    ->     while count < 10 do
    ->         set count = count + 1;
    ->     end while;
    ->
    ->     select count;
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql>
mysql> call test_while(10);
+-------+
| count |
+-------+
|    10 |
+-------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

带有条件判断的

mysql> delimiter $$
mysql>
mysql> CREATE PROCEDURE myProc()
    -> BEGIN
    ->
    ->     DECLARE i int;
    ->     SET i=1;
    ->     loop1: WHILE i<=10 DO
    ->          IF MOD(i,2)<>0 THEN /*Even number - try again*/
    ->             SELECT CONCAT(i," is an odd number");
    ->          END IF;
    ->          SET i=i+1;
    ->     END WHILE loop1;
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql> call myProc();
+-------------------------------+
| CONCAT(i," is an odd number") |
+-------------------------------+
| 1 is an odd number            |
+-------------------------------+
1 row in set (0.02 sec)

+-------------------------------+
| CONCAT(i," is an odd number") |
+-------------------------------+
| 3 is an odd number            |
+-------------------------------+
1 row in set (0.02 sec)

+-------------------------------+
| CONCAT(i," is an odd number") |
+-------------------------------+
| 5 is an odd number            |
+-------------------------------+
1 row in set (0.02 sec)

+-------------------------------+
| CONCAT(i," is an odd number") |
+-------------------------------+
| 7 is an odd number            |
+-------------------------------+
1 row in set (0.02 sec)

+-------------------------------+
| CONCAT(i," is an odd number") |
+-------------------------------+
| 9 is an odd number            |
+-------------------------------+
1 row in set (0.02 sec)

Query OK, 0 rows affected (0.38 sec)

时间: 2024-10-20 22:55:23

mysql数据库条件判断查询语句的常见写法说明的相关文章

php查询mysql 多条件判断输出展示

  php查询mysql 多条件判断输出显示 背景: 从mysql查询各字段值输出并且按照条件用红色字体显示满足条件字段值. 条件: 1.syntime小于当前前一周时间的话显示红色. 2.A字段为"无"的话,显示红色. 3.B字段为"无"的话,显示红色. 图一数据库结构: 图二数据库各字段值: 我的代码:(我只满足了第一个条件,其余两个条件不知道该怎么来写) $sql = "select username, onoff, intime, syntime,

详解MySQL数据库insert和update语句_Mysql

 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.SQL语句中的更新语句update是最常用的语句之一,言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSERT.UPDATE以及DELETE. 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就 是对数据进行修改.在标准的SQL中有3个语句,它们是INSERT

Lucene提供的条件判断查询

原文:Lucene提供的条件判断查询 第一.按词条搜索 - TermQuery query = new TermQuery(new Term("name","word1"));hits = searcher.search(query); 这样就可以把 field 为 name 的所有包含 word1 的文档检索出来了. 第二."与或"搜索 - BooleanQuery 它实际是一个组合 query 看看下面的代码:  query1 = new T

mysql多条件排序查询。。。。

问题描述 mysql多条件排序查询.... 表里有两个时间一个标识符,想实现: 1.先按时间1降序排序(条件:标识符=1) 2.再按时间2升序排序. 解决方案 select * from test ORDER BY password DESC,SUBSTRING(name,1,2) DESC,id DESC ......答案就在这里:mysql 多条件排序查询---------------------- 解决方案二: select * from (select * from 表名 where 标

mysql数据库,在查询列名里子查询一列由两列组合去重的个数如何实现?

问题描述 mysql数据库,在查询列名里子查询一列由两列组合去重的个数如何实现? 需求:数据库有:列1----列2---- 127.0.0.1-----123----- 127.0.0.1-----123----- 127.0.0.1-----123----- 124.254.42.38----541--- 去除重复后结果 127.0.0.1---123 124.254.42.38----541 然后如何获得个数. 自己想了一下写出来后有错 select ( select DISTINCT 列1

数据库知识—SQL查询语句精华使用简要

精华|数据|数据库|语句 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段. SELECT nickname,email FROM testtable WHERE name='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表.星号.表达式.变量(

MySQL基于条件判断的数据插入例子

在编写程序时,我们经常会遇到一些基于条件判断的逻辑,比如:判断该条数据是否已经在数据库中存在,如果不存在,则插入. 技巧一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回.所以使用ignore请确保语句本身没有问题,否则也会被忽略掉. 示例: INSERT IGNORE INTO books ( name ) VA

MySQL中的基本查询语句学习笔记_Mysql

1.基本查询语句select 属性列表 from 表名和视图列表 [where 条件表达式1] [group by 属性名1 [having 条件表达式2]] [order by 属性名2 [asc|desc]]2.单表查询1)使用*查询所有字段 select * from 表名: 2) 查询指定字段 select id,name from product: 使用上面例子可以查询指定字段 3)查询指定记录 where 条件表达式 实例: select *from employee where i

MySQL数据库之UPDATE更新语句精解

用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.本文以MySQL为背景来讨论如何使有SQL中的更新语句. 一.INSERT和REPLACE INSERT和REPLACE语句的功能都是向表中插入新的数据.这两条语句的语法类似.它们的主要区别是如何处理重复的数据. 1. INSERT的一般用法 MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式