草庐IT

if-cases

全部标签

mysql - 在 MySQL 的选择查询中使用 CASE、WHEN、THEN、END

我在一个与棒球相关的网站上工作。我有一张table,上面有两支棒球队的击球阵容:+----+----------+--------------+--------+|id|playerId|battingOrder|active|+----+----------+--------------+--------+击球顺序是1到20之间的整数,对应逻辑如下:击球顺序1-9—客队阵容击球顺序10—客队投手击球顺序11-19—主队阵容击球顺序20—主队投手active字段是一个tinyint0或1,代表投手在土墩上,击球手在本垒板上。已知事实:始终会有一名来自一支球队的现役投手和一名来自另一支球

mysql select case 多列作为

我想用这样的东西设置多个字段,我该如何让它工作?SelectTableId,CASEWHENStartTime>ApptTHENFieldASField_1FieldIdASFieldId_1WHENStartTimeBETWEENApptANDDATE_ADD(Appt,INTERVAL1MONTH)THENFieldASField_2FieldIdASFieldId_2ENDFROMTableA;它不起作用,ASField_1附近的语法错误。 最佳答案 您正试图在SQL语句中执行类似于宏扩展的操作,但您无法执行此操作。解决问题的

python - MySQL 'IF EXISTS'命令在python中使用时导致错误

我正在尝试学习如何在Python中使用SQL和MySQL(因为我所有的项目都使用MySQL),但是IFEXISTS语句似乎有问题。从命令行:DROPTABLEIFEXISTSaccessLogs;返回:Queryok,0rowsaffected,1warning(o.00sec)并且表被成功删除。但是,如果我使用python的execute()方法:cursor.execute("DROPTABLEIFEXISTSaccessLogs")我收到这个错误:pydbCreate.py:12:Warning:Unknowntable'accessLogs'cursor.execute("DR

mysql - MySQL 短路 IF() 函数吗?

我需要从第二个表中查询数据,但前提是满足主表中的一组罕见条件:SELECT...,IF(aANDbANDcAND(SELECT1FROMtableb...))FROMtablea...a、b和c条件几乎总是错误的,所以我的想法是子查询永远不会对结果集中的大多数行执行,因此比连接快得多。但只有当IF()语句短路时才会如此。是吗?感谢你们提供的任何帮助。 最佳答案 答案是肯定的。mysql查询中的IF(cond,expr_true,expr_false)短路。这里做个测试,用@variables来证明事实:SET@var:=5;SELE

MySQL IF IN GROUP_CONCAT 中断

我正在执行一个相当大的SQL,所以我很抱歉无法提供我的表的更大示例。SELECTcustomer_id,agreement_id,if('network'IN(GROUP_CONCAT(DISTINCTservices.service_codeSEPARATOR',')),'Yes','No')asnetworkserviceFROMcustomersINNERJOINagreementUSING(customer_id)INNERJOINservicesUSING(agreement_id)GROUPBYcustomer_id一个客户可以有一个协议(protocol),一个协议(pr

php - "REPLACE INTO"与 INSERT [IF]

好吧,我有一个问题,不是真正的问题。我的数据库中有一个表,相当小,只有3列,但有增长的潜力。我的问题有两种解决方案,但不确定为什么要使用其中一种。我有一段数据,它可能已经存在也可能不存在于数据库中。解决这个问题的两种方法。我有唯一的ID,所以很容易检查。检查记录是否存在于数据库中,如果不存在,则INSERTINTO数据库使用REPLACEINTO,因为我已经有了ID。我现在的问题是。哪个更好用。使用这两个结果中的任何一个的优缺点是什么。还是有更好的结果?请注意,数据完全相同,因此记录不可能更新为更新的值。因此REPLACEINTO将插入已经存在的数据。 最佳

mysql - 带有子查询的 SELECT 查询中的 IF 和 CASE 语句

如果menu_items.parent不是0,则下面的查询返回NULL,这是错误的。我在这里要做的是,如果menu_items.parent行的值为0则将其作为原始值返回,但如果该值不是0然后返回值对应行的名称(varchar)。知道为什么我总是得到NULL吗?注意:所有其他选定的列都是正常的,因此查询本身没问题。谢谢示例1:SELECT......(CASEWHENmenu_items.parent='0'THENmenu_items.parentELSE(SELECTnameFROMmenu_itemsWHEREid=menu_items.parent)END)ASParentID

mysql - MySQL 中的 CASE 性能?

我想知道是否在MySQL查询中使用CASE...WHEN...THEN表达式对性能有负面影响吗?而不是使用CASE表达式(例如在您的UPDATE查询中)你总是有可能在你的程序中做ifelse语句用php、python、perl、java编写,...选择要发送的查询,例如(伪代码):prepareStatement("UPDATEt1SETc1=c1+1,msg=CASE(@v:=?)WHEN''THENmsgELSE@vEND");setStatementParameter(1,message);或欧洲工商管理学院:if(message==""){prepareStatement("U

mysql - Doctrine 中的简单 IF 测试语句

Doctrine是否支持IF语句?我收到以下错误:Expectedknownfunction,got'IF'在使用IF执行此查询时:$qb->select("c.id,IF(c.type_idLIKE9,c.name,c.lastname)asname")用纯SQL重写时它工作正常。有什么解决方法吗? 最佳答案 是的ifDoctrine中的陈述不被支持,您可以将其转换为casewhenIF(c.type_idLIKE9,c.name,c.lastname)asname到casewhenc.type_id=9thenc.nameels

mysql - MySQL if else endif 语句怎么写?

我想要一个简单的MySQLif,else,endif语句示例。我想做这样的事情(在Java中):SELECTCOUNT(*)FROM`table`WHERE`userID`=1if(count==0){INSERTINTO`table`(`userID`,`A`,`B`)VALUES('1','323','232')}else{UPDATE`table`SET`A`='323',`B`='232'WHERE`userID`=1} 最佳答案 MySQL具有INSERTONDUPLICATEKEYUPDATE允许您在值已存在时更新或在不