草庐IT

if-cases

全部标签

sql - IF SQL 从 MySQL 到 PostgreSQL 的转换

我正在转换PHP脚本,因为数据库已从MySQL切换到PostgreSQL。我知道PG没有IF函数但是有CASE函数。转换此MySQL语句的最佳方法是什么?SELECTalbums.id,albums.albumname,sum(if(((albums.id=allalbums.albumid)and(allalbums.photoid=$photoid)),1,0))asinalbumFROMalbums,allalbumsGROUPBYalbums.idORDERBYalbums.createdatedesc 最佳答案 像这样的东

mysql - MySQL 中的 IF 触发器

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。尝试创建MySql触发器CREATETRIGGERupdVisibleAFTERUPDATEONphotosFOREACHROWBEGINIFNEW.Status=2THENUPDATEotherTableSETIsVisible=0WHEREPID=NEW.PIDENDIF;END;但是我得到了错误:YouhaveanerrorinyourSQLsynt

MYSQL 触发器使用 case 语句设置日期时间值

我正在使用mysqlimport进行大量表插入(替换重复的主键)。多个表的日期时间列的记录包含值“0000-00-00”。我想要的是一个触发器,它检测这些“0000-00-00”值并替换为“1950-01-01”,否则将日期时间值保留在记录中(即当它不是“0000-00-00”时).我尝试了以下方法:CREATETRIGGERset_datetimeBEFOREINSERTONtblFOREACHROWCASEWHENdate_col='0000-00-00'THENSETdate_col='1950-01-01';ENDCASE谢谢。编辑更新尝试:CREATETRIGGERset_d

MySQL 存储过程 : IF in WHERE

我正在尝试以下列方式选择一些数据:SELECTcolumnFROMtableWHEREa=a1AND(b=b1ORb=b2ORb=b3);我想让它做的是如果b不等于b1,检查是否b=b2。但是,如果b=b1,则不检查其他条件。此select语句的结果必须只有一个条目。但是,在Ihaveno语句中,它会检查所有三个条件,有时会返回多行。同样,我希望它停止检查条件是否为真。关于如何实现的任何想法?我试过case但没有成功...提前致谢!编辑这是我尝试运行的实际查询。INSERTINTOshipment_flights(airlinename,flt_no,flt_date,destinat

MySQL SELECT + LEFT JOIN + IF 查询

我有一个名为类别的简单数据库表:category.idcategory.namecategory.lang1'apple''en'1'manzana''es'1'''de'1'''it'变量:$default_lang='en';$current_lang='it';我想根据$current_lang进行查询,返回category_name字段,但是如果category.name为空,那么应该像这样使用$default_lang中的category.name:SELECT*FROMcat_listLEFTJOINcategoryONcal_list.id=category.idANDI

python - 在 mysql 查询中使用 if

我已经有了这个查询:cursor.execute("SELECTcalldate,dst,billsec,accountcode,disposition,(billsec/60*%s)astotalFROMcdrWHEREcalldate>='%s'andcalldateObs:dst是一个电话号码。但现在我需要做的是:如果dst的第5个字符这可能吗?这样我得到了一个mysql语法错误:cursor.execute("""SELECTcalldate,dst,billsec,accountcode,disposition,casewhencast(substring(dst,4,1),

调用不同 SELECT 语句的 MySQL IF/CASE 语法

我在使用MySQL的IF或CASE语法时遇到问题过程是这样的:我有一个调用MySQL查询的PHP项目,假设PHP传递变量X。如果X不是0那么它应该执行如下查询:SELECT*FROMtableWHEREid=X但是如果X是0。然后它应该执行查询以仅选择所有记录:SELECT*FROMtable我不希望PHP中的条件根据PHP中的条件结果调用不同的MySQL查询。我希望根据传递的变量X在SQL查询中执行if/else条件。 最佳答案 SELECT*FROMtableWHERE$x=0orid=$x

"CASE WHEN"中的 MYSQL 正则表达式

我想在这样的CASEWHEN上下文中使用REGEXP:SELECTCASEtitleWHENREGEXP'^(TheMatrix|Riddick|AmericanPie)$'THEN('Movie')ELSE('FOOO')ENDFROM`movies`但这是不可能的。如您所见,我想在这里匹配不同的字符串。问候,菲利克斯 最佳答案 这确实是可能的,只要语法正确。REGEXP需要左侧和右侧操作数,因此请使用CASE的其他语法,其中完整表达式放在WHEN之后。SELECTCASEWHEN`title`REGEXP'^(TheMatrix

mysql - SQL IF SELECT query is null then do another query

我有一个定期返回“无”的查询,如果是这种情况,我想运行一个不同的查询,但我不知道这样做的方法。如果有人可以提供帮助,请。这是我当前使用的代码...SELECT*FROMcfg_usersJOINcfg_ashONcfg_users.iUserId=cfg_ash.iUseridWHEREiTeamId='0'ANDsDisabled为NULLANDiStatusId>0ANDsDate='2014-08-01'GROUPBYcfg_users.iUserIdORDERBYiStatusId,sName我主要想说IFISNULLTHEN,IFISNOTNULLTHENreturnther

mysql - 在 SQL 中使用 IF/CASE 条件

我有一个关于如何在SQL中使用IF语句的问题,所以我有3个表用户力学交流各表的字段如下usermechanicsexchanges-------------------------namenameid_userid_userid_mechaid_mechamessage我想使用类似下面的条件,我将选择user或mechanic的名称及其相应的message如果他们的id与exchanges为他们每个人(user或mechanic)拥有的那个相匹配SELECTCASEWHENmechanics.id_mecha=exchanges.id_mechaTHENmechanics.name,e