草庐IT

case-statement

全部标签

php - PDO 和 PHP/MySQL : what is the heck is wrong with PDO's prepared statements?

我知道这个标题听起来很可笑,但我已经研究了几个小时,现在才发现PDO最终是有问题的,没有明显的解决方案……我致力于为一个人开放。我也愿意接受我的代码有缺陷。使用PHP5.2/Ubuntu,此代码有效(不使用准备好的语句/开放注入(inject)):$sql="SELECTCOUNT(*)FROMpropertypINNERJOINproperty_attributepaONp.property_id=pa.property_idINNERJOINproperty_areapcONp.property_id=pc.property_idWHEREpa.attribute_value_id

具有多个 'case' 值的 mysql 'WHEN'

我有一个查询需要对其他2列为true的列进行计数。当“DealerName”如“%MINI%”和“DealerContact_Y”=1时,我需要计算“DealerName”但我不确定语法。此查询产生错误SELECTDealerName,count(DealerShipId)asdealersContacted,CASEWHENDealerNameLIKE"%MINI%",WHENDealerContact_Y=1THENCount(DealerContact_Y)ENDasMini_contacted_yes,Campaign,DealerIdFROMtblsummaryResults

mysql - 嵌套case语句sql

我在用SQL编写case语句时遇到问题。我的第一个问题是:是否可以将下面的if语句写成select语句中SQL查询中的case语句?如果不是,那么请查看下面的案例陈述并帮助/指导我进入有效格式。谢谢,非常感谢!IF(var1=1){dothis1;IF(var1=2){Dothis2;}Else{dosomethingelse1;}Elseif(Var1=3){Dothis3;}Else{Dosomethingelse2;}这是我的案例陈述。我知道它不起作用,因为它不是有效的案例陈述。有人可以帮助我使其成为有效的案例陈述吗?提前致谢。SELECTCASEWHENapple.type=1

MYSQL - 如何选择 CASE(两个表,如果一个不存在,请检查另一个)

我拥有的是mysql数据库中的两个表。一个表包含值为"example@example.com"的字段其他表没有...我想做的是检查两个表中是否有一个字段的值与"example@example.com"匹配。这是我的查询,它不起作用:(#1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''atline13)SELECTCASEWHENEXISTS(SELECTaddress,suburb,city,postCo

MYSQL CASE WHEN UPDATE 查询

这是我的table。我需要做的是创建一个CASEWHENUPDATE查询来更新CurrentCredit+1if1-15如果16-30岁,CurrentCredit+2CurrentCreditx.10,如果>=31则四舍五入 最佳答案 看例子SQLFiddleDEMO有点像UPDATEMyTableSETCurrentCredit=CASEWHENCurrentCreditBETWEEN1AND15THENCurrentCredit+1WHENCurrentCreditBETWEEN16AND30THENCurrentCredit

php - mysqli prepared statement查询错误在哪里?

这个问题在这里已经有了答案:CanIparameterizethetablenameinapreparedstatement?(2个答案)关闭去年。我正在尝试创建一个mysqli准备语句,其中我将表从odbc连接的数据库导入到mysql数据库,我在106列宽表查询中遇到此错误。YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'?(ID,column1,column2,column3,column4,'atline1"当

mysql - QueryDSL 中 Case Builder 表达式的总和

我有如下查询selectfield1,filed2,count(*),sum(caseisNewWHEN0THEN0ELSE1END)asnew_count1,sum(casesourceWHEN'SomeValue'THEN0ELSE1END)asnew_count2fromTABLEwherestatus='processed'andfiled1='filed1Value'andfiled2='field2Value';此输出是包含我需要的所有值的单行。我想使用queryDSL实现相同的目的。我在QueryDSL中使用CaseBuilder,但无法在其上应用总和。QueryDsl支

mysql - 如何在mysql存储过程中使用case-when语句?

我想使用request_time参数自动设置session_id,所以我选择了一个包含case语句的mysql存储过程。这里是。createprocedureupd_userinput(inrequest_timetimestamp,outuser_session_idint)beginupdateuser_input;caserequest_timewhentime(request_time)'8:15:00'thensetuser_session_id=1;whentime(request_time)'11:15:00'thensetuser_session_id=2;endcas

java - Prepared Statements如何比Statements更好地防止SQL注入(inject)?

背景:我已经开始了一个项目,使用JDBC和MYSQL来模拟一个书店,全是本地的。为了连接到数据库,我开始使用Statement,但我开始读到,当多次使用仅更改其参数的查询时,对这些查询使用PreparedStatement会更有效。然而,我读得最多的是PreparedStatements如何更好地防止SQL注入(inject)。来源:此线程的答案here谷歌教授我的问题:在处理参数化查询时,PreparedStatements如何比Statements更好地防止SQL注入(inject),甚至在这方面有所不同?我很困惑,因为如果我理解正确的话,这些值仍然会传递到执行的SQL语句中,这只

php - Amazon RDS 中的 lower_case_table_names 设置

我们在AmazonRDS中有一个数据库实例和一个数据库。(默认情况下它的lower_case_table_names=0)。现在我在同一实例中创建了另一个数据库。对于新站点,由于表名区分大小写,它给出的表未找到错误。因此我在该实例的RDS中更改了lower_case_table_names=1(因为不允许使用2)。新站点开始运行,但旧站点提供错误表未找到。有什么解决办法吗?我想设置lower_case_table_names=1这样新数据库就不会出现问题。提前致谢! 最佳答案 我遇到了同样的问题,默认情况下,当您使用AWSRDS创建