草庐IT

if-cases

全部标签

mysql - SQL 在计数和分组依据中使用 CASE

我正在使用CASE对表中的数据进行分类并对其进行计数,但结果不准确现场演示[here]selectDATE(date)asday,count(*),count(distinctcasewhenname='fruit'then1else0end)asfruits,count(distinctcasewhenname='vege'then1else0end)asvege,count(distinctcasewhenname='sweets'then1else0end)assweetsfromfoodgroupbydaywithrollup我不确定问题是出在CASE上还是出在与=匹配的字符串

MySQL 用 IF 语句连接多个字段

我正在尝试做一些我认为很简单的事情,但我被卡住了。我基本上想从多个地址部分字段创建一个地址字段,使用IF语句使用地址或交集。这是我制作该字段的声明:CONCAT(loc_name,'\n',IF(add_number!=''&&add_street!='')THENCONCAT(add_number,'',add_street,'\n')ELSEIF(x_street_1!=''&&x_street_2!='')THENCONCAT(x_street_1,'&',x_street_2,'\n')ENDIF,city,',',IF(state!='')THENCONCAT(sta

mysql - 如何在where子句中使用case

我只想获取status=1条记录。但是我的表中没有状态列。所以我使用CASE...WHEN...THEN推导出值。但是当我尝试在where子句中使用case时,它​​显示语法错误。我的问题SELECTSQL_CALC_FOUND_ROWS*,CASEWHENquantity>num_usedAND(CURDATE()BETWEENcoupon_start_dateANDcoupon_end_date)THEN'1'ELSE'0'ENDASSTATUSFROMtable_coupon_codeWHERE(CASEWHENquantity>num_usedAND(CURDATE()BETW

php - IF EXISTS UPDATE ELSE INSERT 语法错误

我正在使用由我的ISP托管的MySQL5.1。这是我的查询mysql_query("IFEXISTS(SELECT*FROMlicensing_activeWHEREtitle_1='$title_1')THENBEGINUPDATElicensing_activeSETtime='$time'WHEREtitle_1='$title_1')ENDELSEBEGININSERTINTOlicensing_active(title_1)VALUES('$title_1')END")ordie(mysql_error());错误是...checkthemanualthatcorrespon

php mysql、pdo 和查询 : why multiple 'query' don't work (in this case)?

这是我的sql请求:$sql='CREATETEMPORARYTABLEtmp'.'SELECT*FROM'.$table.''.'WHEREid=:id;'.'ALTERTABLEtmpdropID;'.'INSERTINTO'.$table.''.'SELECT0,tmp.*FROMtmp;'.'SET@last=LAST_INSERT_ID();'.'DROPTABLEtmp;'.'SELECT@last;';$stmt=$this->bd->execQuery($sql,array(':id'=>101));echo"1->=";var_export($stmt);echo"\

mysql - 如何从 phpMyAdmin 4 中的导出中删除 "CREATE DATABASE IF NOT EXISTS"语句?

我使用的是phpMyAdmin4.0.2,似乎在对整个数据库进行导出时,默认情况下它会在导出SQL的开头添加语句“CREATEDATABASEIFNOTEXISTS”。我找不到配置选项或任何选项来禁用它...那么有没有办法禁用它并且默认情况下在我的导出中没有该语句? 最佳答案 此行为在版本3中默认情况下不会发生。一个快速修复,实际上是一个hack,因此不是理想的解决方案,是编辑位于libraries/plugins/export/ExportSql.class.php中的导出类文件并强制通过在它们之前添加“--”来注释掉CREATE

sql - 从嵌套在 CASE MySQL 中的 SELECT 返回多列

有更好的方法吗?SELECTsubs.*,CASEsubs.member_typeWHEN'member'THEN(SELECTCONCAT_WS('',members.first_name,members.last_name)FROMmembersWHEREmembers.id=subs.member_id)ELSE(SELECTmembers_anon.usernameFROMmembers_anonWHEREmembers_anon.id=subs.member_id)ENDASfullname,CASEsubs.member_typeWHEN'member'THEN(SELEC

MySQL CASE 语句和 REGEXP

我想使用一个使用REGEXP的CASE语句。目前我正在做这样的事情:SELECTNAME,CASEINFOWHEN'notcool'THEN'NotCool'WHEN'verycool'THEN'Cool'ELSEINFOENDASINFOFROMINFO_TABLE有没有办法在初始语句中使用REGEXP使条件充当REGEXP?从理论上讲,这就是我想要的,但这是行不通的:SELECTNAME,CASEINFOREGEXPWHEN'notcool'THEN'NotCool'WHEN'verycool'THEN'Cool'ELSEINFOENDASINFOFROMINFO_TABLE我希望

mysql - MySQL 触发器中的 IF 语句

我需要一些帮助来完成这个触发器。我试了一下,但我不知道出了什么问题。这是代码:delimiter$$CREATETRIGGERattendance_clockAFTERINSERTONalldevicerecordFOREACHROWBEGINDECLAREcheckINT;SETcheck=1;IF(check%2==0)THENINSERTintodesignation(emp_id,clock_date,clock_in)VALUES(new.id,new.time,new.time);check=check+1;ELSEUPDATEdesignationSETclock_out

mysql - H2 中的 IF 函数用于 MySQL 兼容性

我正在使用H2(具有MySQL兼容模式)针对我们使用MySQL的软件编写一些自动化测试。不幸的是,H2似乎没有我们许多查询使用的IF函数。除了用DECODE之类的东西重写我们的应用程序查询之外,它们是创建if函数的好方法吗,比如说作为别名?我得到的错误:WARNING:Failedtoexecute:SELECTIF(true,'TRUE!!','FALSE!!!')because:Function"IF"notfound;SQLstatement: 最佳答案 我刚遇到同样的问题,我用CASE/WHEN/THENSQL语句解决了它。