`

Mysql sql查询时 if 的用法

阅读更多
SELECT qanswers.id,qanswers.question_id,qanswers.answer,users.nickname AS replier,

users.groupname,IF(users.groupname='teacher',TRUE,FALSE) AS isTeacher

FROM fa_user_question_answer AS qanswers 

LEFT JOIN fa_users AS users ON users.id=qanswers.user_id 

WHERE qanswers.question_id=11
 
2
2
分享到:
评论
4 楼 hellotieye 2016-08-19  
自己 评论 自己 挺嗨呀
3 楼 vb2005xu 2011-01-12  
mysql 取得当前时间戳的函数:

SELECT UNIX_TIMESTAMP();
2 楼 vb2005xu 2010-09-29  
PHP MYSQL 更新单表时 使用连接表的字段的例子

//		$tbUsers = $this->getTableName('users');
//		$sql = "UPDATE {$tbUsers},{$this->_name} SET {$tbUsers}.credit={$tbUsers}.credit+fa_user_question.score 
//			WHERE {$this->_name}.id={$questionId} AND {$tbUsers}.id={$userId}" ;
//		
1 楼 vb2005xu 2010-09-26  
引用

select *,if(sva=1,"男","女") as ssva from taname where sva<>""

12.2. 控制流程函数
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。

MySQL> SELECT CASE 1 WHEN 1 THEN 'one'

    ->     WHEN 2 THEN 'two' ELSE 'more' END;

        -> 'one'

mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;

        -> 'true'

mysql> SELECT CASE BINARY 'B'

    ->     WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;

        -> NULL

一个CASE表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在语境而定。如果用在字符串语境中,则返回结果味字符串。如果用在数字语境中,则返回结果为十进制值、实值或整数值。

IF(exPR1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

mysql> SELECT IF(1>2,2,3);

        -> 3

mysql> SELECT IF(1<2,'yes ','no');

        -> 'yes'

mysql> SELECT IF(STRCMP('test','test1'),'no','yes');

        -> 'no'

如果expr2 或expr3中只有一个明确是 NULL,则IF() 函数的结果类型 为非NULL表达式的结果类型。

expr1 作为一个整数值进行计算,就是说,假如你正在验证浮点值或字符串值,   那么应该使用比较运算进行检验。

mysql> SELECT IF(0.1,1,0);

        -> 0

mysql> SELECT IF(0.1<>0,1,0);

        -> 1

在所示的第一个例子中,IF(0.1)的返回值为0,原因是 0.1 被转化为整数值,从而引起一个对 IF(0)的检验。这或许不是你想要的情况。在第二个例子中,比较检验了原始浮点值,目的是为了了解是否其为非零值。比较结果使用整数。

IF() (这一点在其被储存到临时表时很重要 ) 的默认返回值类型按照以下方式计算:

表达式
返回值

expr2 或expr3 返回值为一个字符串。
字符串

expr2 或expr3 返回值为一个浮点值。
浮点

expr2 或 expr3 返回值为一个整数。
整数


假如expr2 和expr3 都是字符串,且其中任何一个字符串区分大小写,则返回结果是区分大小写。
http://blog.knowsky.com/
IFNULL(expr1,expr2)
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

mysql> SELECT IFNULL(1,0);

        -> 1

mysql> SELECT IFNULL(NULL,10);

        -> 10

mysql> SELECT IFNULL(1/0,10);

        -> 10

mysql> SELECT IFNULL(1/0,'yes');

        -> 'yes'

IFNULL(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或 INTEGER。假设一个基于表达式的表的情况,  或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:

CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;

在这个例子中,测试列的类型为 CHAR(4)。

NULLIF(expr1,expr2)
如果expr1 = expr2  成立,那么返回值为NULL,否则返回值为 expr1。这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。

mysql> SELECT NULLIF(1,1);

        -> NULL

mysql> SELECT NULLIF(1,2);

        -> 1

注意,如果参数不相等,则 MySQL 两次求得的值为  expr1 。

相关推荐

    MySql与SqlServer的一些常用用法的差别

    MySql 与 SqlServer 的一些常用用法的差别 MySql 和 SqlServer 是两种常用的关系型数据库管理系统,每种数据库管理系统都有其自己的特点和使用方法。作为一名开发者,了解它们之间的差别是非常重要的。本文将详细...

    mysql存储过程之if语句用法实例详解

    本篇文章将深入探讨MySQL存储过程中的`IF`语句及其相关用法。 首先,`IF`语句的基本语法如下: ```sql IF expression THEN statements; END IF; ``` 在这里,`expression`是一个布尔表达式,当其计算结果为`TRUE...

    mysql临时表用法分析【查询结果可存在临时表中】

    总结,MySQL临时表提供了一种灵活的方式来存储和处理临时数据,它们在处理大量数据和复杂的查询逻辑时尤其有用。临时表可以帮助优化查询性能,特别是在需要多次处理相同数据集的情况下,避免了反复执行相同的查询。...

    SQL语句大全(很全)sql语句用法

    本文档提供了一套全面的SQL语句及其用法,适用于MySQL、Oracle和SQL Server等主流数据库系统。这些SQL语句覆盖了数据操作、数据定义、数据控制以及事务控制等多个方面。 #### 二、数据操作 ##### SELECT - **用途*...

    MySql与SqlServer的一些常用用法的差别[借鉴].pdf

    SQL Server 的 `IF...ELSE` 语句可以直接使用,而在 MySQL 中,需要使用 `IF...THEN...END IF` 结构,且必须包含 `THEN` 和 `END IF` 关键字。 9. **声明变量** 两个系统都支持 `DECLARE` 语句来声明变量,但在 ...

    2021年MySQL高级教程视频.rar

    18.MySQL高级存储过程语法if判断.avi 19.MySQL高级存储过程语法输入参数.avi 20.MySQL高级存储过程语法输出参数.avi 21.MySQL高级存储过程语法case结构.avi 22.MySQL高级存储过程语法while循环.avi 23.MySQL高级存储...

    MySQL中的if和case语句使用总结

    Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 代码如下: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 &lt;&gt; 0 and expr1 &lt;&gt; NULL),则 IF()的...

    java sql 普通用法

    ### Java SQL 普通用法 #### 知识点概览 本文将详细介绍Java中进行SQL操作的基本步骤,包括数据库连接、执行SQL语句、处理结果集等,并通过一个具体的示例来展示如何在Java程序中实现这些功能。 #### 数据库连接 ...

    mysql c api 用法 英文

    - 对于复杂的查询,可以使用 `mysql_stmt_prepare` 和 `mysql_stmt_execute` 函数来预处理并执行 SQL 语句。 - 例如: ```c MYSQL_STMT *stmt = mysql_stmt_init(conn); if (mysql_stmt_prepare(stmt, "INSERT ...

    mysql用法,教你轻松使用mysql

    mysql -u root -p &lt; c:\school.sql ``` 若要导出数据库中的数据到文件,则可以使用 mysqldump 工具: ```sql mysqldump --opt school &gt; school.bbb ``` 这里 `--opt` 参数用于优化导出过程,`school` 是要导出的...

    「Python入门」python操作MySQL和SqlServer

    这个库提供了一个简单易用的方式来执行 SQL 查询,并且支持多种数据库操作,如数据的增删改查等。 #### 二、pymysql 模块使用说明 ##### 2.1 MySQL 数据库及环境准备 - **2.1.1 官网下载集成环境** 在开始之前...

    MySql中流程控制函数/统计函数/分组查询用法解析

    MySQL是世界上最流行的关系型数据库管理系统之一...通过以上讲解,我们可以了解到MySQL中的流程控制、统计函数和分组查询的基本用法。理解并熟练掌握这些概念和语法,将极大地提高我们在数据库管理和数据分析中的效率。

    mysql基本API文档

    主要涉及的内容包括:如何初始化MySQL连接、建立数据库连接、执行SQL查询语句以及处理查询结果等关键操作。 ### 一、MySQL API概述 MySQL是目前广泛使用的开源关系型数据库管理系统之一,其提供了丰富的C语言API...

    MySQL多种递归查询方法.docx

    ### MySQL多种递归查询方法详解 #### 一、Oracle中的递归查询方法 在Oracle数据库中,递归查询可以通过`START WITH CONNECT BY PRIOR`语句实现。此语句允许用户按照树状结构来检索数据。 ##### 1. `START WITH ...

    浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解

    本文将深入探讨SQL Server的`ISNULL`函数和MySQL的`IFNULL`函数,帮助读者理解和掌握它们的用法。 **SQL Server的ISNULL函数** `ISNULL`函数在SQL Server中用于检查一个表达式是否为NULL,并根据需要替换为指定的...

    MySql中的IFNULL、NULLIF和ISNULL用法详解

    了解这些函数的用法对于编写健壮的SQL查询至关重要,尤其是在处理可能包含NULL值的数据时。在实际应用中,根据需求选择适当的函数可以提高代码的可读性和效率。在MySQL中,这些函数提供了灵活的方式来处理NULL值,...

    mysql用法小结

    - 使用`mysql db_name &lt; backup-file.sql`命令将备份文件导入到MySQL数据库中。 以上就是关于MySQL的基础操作和管理技巧的小结。这些操作涵盖了MySQL日常管理中的大部分场景,希望对读者有所帮助。

    mysql查询多少秒内的数据,分类统计用户,sum()函数的一个特殊用法 一条比较经典的语句

    当查询最近30秒内的记录时,可以得到以下结果: - `c`:表示在这30秒内总共有多少条记录。 - `a`:管理员登录次数的平均值(即管理员的登录记录数除以2)。 - `b`:普通用户登录次数的平均值(即普通用户的登录记录...

Global site tag (gtag.js) - Google Analytics