`

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存储过程之if语句用法实例详解

    本文实例讲述了mysql存储过程之if语句用法。分享给大家供大家参考,具体如下: mysql中的 IF语句允许我们根据表达式的某个条件或值结果来执行一组SQL语句,所以我们要在MySQL中形成一个表达式,可以结合文字,变量,...

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

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

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

    本文实例讲述了mysql存储过程之case语句用法。分享给大家供大家参考,具体如下: 除了if语句,mysql提供了一个替代的条件语句CASE。 mysql的 CASE语句使代码更加可读和高效。废话不多说,我们先来看下简单case语句的...

    MYSQL常用命令大全

    9:导入.sql文件命令(例如D:/mysql.sql) mysql&gt;use database; mysql&gt;source d:/mysql.sql; 10:删除表 mysql&gt;drop TABLE MYTABLE; 11:清空表 mysql&gt;delete from MYTABLE; 12:更新表中数据 mysql&gt;update MYTABLE set ...

    MySQL里的IFNULL、NULLIF和ISNULL用法

     mysql中isnull,ifnull,nullif的用法如下:  isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。mysql&gt; select isnull(1+1);-&gt; 0mysql&gt; select isnull(1/0);-&gt; 1使用= 的null ...

    sqlparser:Go中实现SQL解析器

    sqlparser Go包,用于解析MySQL SQL查询。注意此的主干是从提取的。 在vitessio / vitess内部,有一个写得很好的sql解析器。 但是,由于它不是一个独立的应用程序,所以我创建了这个应用程序。 它适用于与vitessio /...

    MySQL存储结构用法案例分析

    本文实例讲述了MySQL存储结构用法。分享给大家供大家参考,具体如下: 前言 今天公司老大让我做一个MySQL的调研工作,是关于MySQL的存储结构的使用。这里我会通过3个例子来介绍一下MySQL中存储结构的使用过程,以及...

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

    本文实例讲述了mysql临时表用法。分享给大家供大家参考,具体如下: 一、创建临时表可以将查询结果寄存。报表制作的查询sql中可以用到。 (1)关于寄存方式,mysql不支持: select * into tmp from maintenance...

    QT 访问数据库简单代码

    //查询数据 QSqlQuery sql_query; QString select_all_sql = "select * from biao"; qDebug() &lt;&lt;sql_query.prepare("select * from biao"); if(!sql_query.exec()) { qDebug()&lt;&lt;sql_query.lastError(); ...

    MySQL自定义函数简单用法示例

    本文实例讲述了MySQL自定义函数用法。分享给大家供大家参考,具体如下: 先来一个简单的,创建一个函数将’2009-06-23 00:00:00’这样格式的datetime时间转化为’2009年6月23日0时0分0秒’这样的格式: DELIMITER $...

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

    在做项目中发现MySql里的isnull和mssql里的有点不同。接下来小编通过本文给大家介绍MySql中的IFNULL、NULLIF和ISNULL用法详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    MySQL命令大全

    9:导入.sql文件命令(例如D:/mysql.sql) mysql&gt;use database; mysql&gt;source d:/mysql.sql; 10:删除表 mysql&gt;drop TABLE MYTABLE; 11:清空表 mysql&gt;delete from MYTABLE; 12:更新表中数据 mysql&gt;update ...

    sql总结.doc

    隐式游标:是用户操作SQL时自动生成的,而显式游标是在声明块中直接定义的游标。 (4)游标的基本用法 通过ROWCOUNT查看游标指向的行:(隐式游标实例) 例: DECLARE v_count NUMBER; BEGIN SELECT COUNT(*) INTO v...

    mysql数据库的基本操作语法

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息; 约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。 常用五类约束: ...

    经典全面的SQL语句大全

    经典SQL语句大全 ...执行SQL查询语句时,将返回查询得到的记录集。用法为:  Set 对象变量名=连接对象.Execute("SQL 查询语言")  Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录...

    MySQL 存储过程的基本用法介绍

    在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。 特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅...

    MySQL Order by 语句用法与优化详解

    MySQL Order By keyword是用来给记录中的数据进行分类的。... 代码如下:CREATE TABLE IF NOT EXISTS mysql_order_by_test ( uid int(10) NOT NULL AUTO_INCREMENT, name char(80) NOT NULL, sex

    浅析MySQL replace into 的用法

    在 SQL Server 中可以这样处理: 代码如下: if not exists (select 1 from t where id = 1) insert into t(id, update_time) values(1, getdate())else update t set update_time = getdate() where id = 1 那么...

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

    SQL Serve的ISNULL函数: ISNULL(check_expression,replacement_value) 1、check_expression与replacement_value的数据类型必须一致。 2、如果check_expression为NULL,则返回replacement_value。 3、如果check_...

Global site tag (gtag.js) - Google Analytics