草庐IT

which_case

全部标签

mysql - 如何在 MySQL CASE 表达式中使用 "OR"条件?

我有一个包含CASE表达式语句的过程,如下所示:BEGIN....WHILEcounter当我调用上述过程时,带有OR语句的情况要么被完全跳过,要么只匹配列表中的第一项。我做错了什么? 最佳答案 CASErankingWHEN1THEN'alpha'WHEN2THEN'beta'WHEN10THEN'charlie'ELSE'zelta'ENDCASE;您可以使用WHEN具有的表达式之一,但不能混合使用它们。1)WHENwhen_表达式是使用简单CASE格式时将input_expression与之进行比较的简单表达式。when_ex

mysql - mysql中CASE和IF有什么区别

我发现了非常奇怪的MySQL行为:我有一个带有变音字母的字符串,我在上面运行了一些IF表达式。像这样的东西:IF(length(field)"))它工作正常。但是,如果我用CASE替换这个if,那么结果会在第一个unlaut字母处被截断!CASEWHENlength(field)")END另外,我注意到只有当查询中也有GROUPBY部分时才会发生这种情况。我无法理解CASE和IF之间的区别-从逻辑的角度来看,两者应该返回完全相同的结果。有人知道为什么这两个命令有区别吗? 最佳答案 "IF是单个fork,"CASE"可以是多个如果您有

php - 多语言数据库 : which method is better?

我有一个3种语言的网站。构建数据库的最佳方式是什么?1)创建3个表,每种语言一个(例如Product_en、Product_es、Product_de)并使用标识符从表中检索数据:例如在php页面上我有一个字符串:$language='en'所以我只得到数据SELECTFROMProduct_$language2)创建1个表:IDLANGUAGENAMEDESCR并且只在页面上发布WHERELANGUAGE='$language'3)创建1个表:IDNAME_ENDESCR_ENNAME_ESDESCR_ESNAME_DEDESCR_DE谢谢! 最佳答案

php - Symfony2 中的 Doctrine2 : How can I see which object-call leads into a query?

我将Symfony2与Doctrine2一起使用。对于我的项目,我制作了具有不同关联映射的实体。首先,我确实看到了大约7个请求一个对象的查询,所以我决定进行“急切加载”并将其减少到三个查询。但是他们两个在symfony工具栏(Profiler)中看起来是一样的直接互相调用。据我了解,我的代码中不需要第三个查询。那么我必须在doctrinephp文件中的什么位置设置断点,以查看我的代码的哪一行使doctrine调用新查询?或者是否有其他解决方案来了解我如何优化此请求?更新:在考虑了Artworkad的答案之后,我必须更详细地讨论。这是因为我没有通过我的Controller发出2个对象请求

php - 在 mysql ORDER BY 中使用 case

我有一个表格,其中包含:项目、排名分数和用户对它的投票数。为简单起见:id、ranks、votes。我正在尝试运行一个查询,该查询将项目从最高排名得分排序到最低得分,除非投票数=0。因为我有新项目的基本排名分数,所以无法对我的排名进行排序。我尝试了以下方法以及其他一些排列方式:$list=$dbh->query('SELECT*FROMranksORDERBYvotesdesc,ratingdesccasewhenmin(votes)=0elseratingdesc');无济于事,看了之后:ConditionalsortinginMySQL和ConditionalsortinginMy

mysql - 有什么理由仍然对数据库表和列使用 snake case 吗?

当我开始设计数据库时,出于某种原因,建议您始终对表和列使用蛇形大小写(my_table_name)。我认为这在MySQL中尤其如此。原因是在某些情况下资本化会丢失或强制执行。快进到今天,我看到很多人使用我更喜欢的Pascal大小写(“MyTableName”)。有什么理由仍然对表名和列名使用蛇形命名法吗?是否存在任何可能丢失或强制大写的情况(例如,如果更改数据库引擎、操作系统等)? 最佳答案 SQL不区分大小写。许多数据库在创建表时将名称折叠为小写,因此会丢失大写。在名称中保留“单词”的唯一可移植方法是使用蛇形大小写。

mysql - MYSQL CASE WHEN语句如何写多个查询条件?

我知道像PHP这样的语言有switchcase控制结构,支持在单个case语句中进行多次验证,例如,Switch$x{case1,2,3:$a=0;break;case5,6:$a=1;break;}同样可以在MYSQL中完成吗?我在下面尝试过,但确实没有用:(CASEvc_shapeWHEN('02'OR'51')THENSETdc_square_1=dc_square_1+dc_row_total;WHEN('06'OR'30'OR83)THENSETdc_square_2=dc_square_2+dc_row_total;..........ELSEBEGINEND;ENDCAS

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、MSSql、甲骨文 : When to use which?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion有什么限制?无论磁盘空间如何,是否存在每个数据都可以处理的特定数据量?假设许可不成问题,何时使用?

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