草庐IT

enable_if_c

全部标签

mysql - 如何在mysql中使用带左连接的if条件

我有下面的表格,它们像这样相互连接Info_Table->RoomGuests_Table->ChildAge_Table这些是表格Info_Table+---------------------------+|ID|Name|Rooms|+---------------------------+|INFO1|ABC|2||INFO2|DEF|1||INFO3|GHI|3|+---------------------------+RoomGuests_Table+-----------------------------------+|ID|R_ID|Adult|Child|+----

mysql: 撤销权限 "if exists"?

在脚本中,我想确保mysql用户对特定数据库没有任何权限。所以我这样做:revokeallprivilegeson`testdb`.*from'testuser'@'%'但是如果用户对该数据库没有任何权限,我会得到这个错误:Thereisnosuchgrantdefinedforuser'testuser'onhost'%'什么是绝对正确的,但我的脚本现在抛出错误并停止。我不想让我的脚本忽略此语句中的所有错误。有没有类似的东西revokeallprivilegesifexist...我在mysql手册中找不到任何相关内容。 最佳答案

带有if语句的MySQL存储过程

我在MySQL中有以下存储过程SELECT*FROMrewardsLEFTJOINtasksONtasks.id=rewards.task_idANDrewards.received_at=received_DateWHEREtasks.kid_id=kid_IdORDERBYtasks.idASC;存储过程有2个(IN)输入,kid_Id(整数)和received_Date(日期),并且工作正常。问题:我想要的是,如果received_Date是NULL那么我想查看所有日期,这可能吗?换句话说:ANDrewards.received_at=received_Date只有在我通过rec

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

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

mysql - MySQL 中 IF 语句的正确语法是什么?

我有一个小而简单的MySQL代码。但是每当我运行它时,我都会收到错误#1064。你能告诉我我的错误是什么吗?IF((SELECTCOUNT(id)FROMtbl_states)>0)THENBEGINSELECT*FROMtbl_cities;ENDENDIF我还使用了一些其他条件,例如下面的条件,但我再次遇到错误。IF(1=1)THENBEGINSELECT*FROMtbl_cities;ENDENDIF我真正想做的是这样的:IF((SELECTCOUNT(id)FROMtbl_states)>0)THENBEGINUPDATE...ENDELSEBEGININSERT...ENDE

mysql - MySQL 的 IF() 函数的标准方法

我找到了MySQL'sIF()function非常有用,它为我提供了一种执行条件聚合函数的有效方法,如下所示:SELECTSUM(IF(`something`='a',`something_weight`,0))AS`A`,SUM(`something_weight`)AS`All`FROM...据我了解,此功能是MySQL的一个特性,在使用SQL的数据库中一般不可用。是否有更标准的方法在数据库方面实现此功能? 最佳答案 我不是sql大师,而是case语句http://dev.mysql.com/doc/refman/5.0/en/

mysql - SQL中where子句中的IF语句

我正在开发一个日历应用程序。它以两种格式存储时间。该表具有以下列title、startDate、startTime。如果用户提供开始时间加上开始日期。数据库在startTime列中存储UNIX时间戳(自UNIXepok以来的秒数),而startDate为NULL。如果用户只提供开始日期,数据库将以nnnn-mm-dd格式存储日期到startDate中,将NULL格式存储到´startTime`.我有这个数据库结构,因为它更容易显示世界各地的时间,因为不同的时区有不同的夏令时。我想选择在指定日期之后发生的事件。客户端计算机向服务器提供当天开始的UNIX时间戳($unix)和格式为nnnn

MySQL 停留在 "Repair by Sorting"(ENABLE KEYS)

我有一个更新本地主机的脚本,然后将更新的结果转储到远程主机:mysqldump--skip-tz-utc--no-create-info--insert-ignore--host=localhost-uu-ppassdbtable--where=\"timeStamp>FROM_UNIXTIME($time)\"|mysql-hremote-uu-ppassdb有20条记录时,对本地主机的更新非常快(几秒钟),但转储到远程主机需要4分钟以上...当我查看mysqlworkbench时,它说远程主机的状态是“Repairby正在排序”,Info列是“/*!40000ALTERTABLE'

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

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