草庐IT

mysql - Drupal 数据库 API 查询 - row.update 如果存在,否则 row.insert

我一直在尝试在drupal中运行查询,如果条目已经存在则更新条目,如果不存在则插入新条目。目前的代码如下所示:db_query("IFEXISTS(SELECT%dFROM{uc_posten_packages.pid})UPDATE{uc_posten_packages}SETtitle='%s',label='%s',cost='%d',length='%d',width='%d',height='%d',weight='%d'WHEREpid=%dELSEINSERTINTO{uc_posten_packages}VALUES('%d','%s','%s','%d','%d','

仅当行不存在时 MySQL INSERT,否则选择重复行

我正在寻找一个语句,它会尝试将一行插入表中,但如果遇到重复行,则返回重复行的主键。表中一个字段是自增主键,另一个是唯一的。 最佳答案 至少在理论上,这应该对您有用:首先扩展您的表以增加一个tinyint类型的虚拟列。然后你可以在插入/更新时使用下面的查询:INSERTINTOyourtable(a,b)VALUES(1,2)ONDUPLICATEKEYUPDATEid=LAST_INSERT_ID(id),dummy=NOTdummy(我在这里假设列a具有唯一索引并且存在a=1的行。)然后您可以通过以下方式获取新行的ID(在插入的情

php - 创建表否则更改表

这似乎是一个简单的问题,但经过一段时间的搜索我找不到答案。我目前在我的本地数据库中有一个MySQL表,供web应用程序使用,它们在远程服务器的数据库中有相同的表。现在,我正在通过PHP使用CREATETABLEIFNOTEXISTS命令在数据库上创建表:CREATETABLEIFNOTEXISTSusers(`id`int(10)NOTNULLAUTO_INCREMENT,`username`varchar(18)NOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=latin1AUTO_INCREMENT=2;但是,假设我对本地数据

c# - 如果行存在则执行更新,否则执行插入

我必须将许多行更新到表中,如果表中不存在更新行,我需要插入该行。我不能使用唯一key,所以不能使用ONduplicateKEYUPDATE我必须实现这样的目标DECLAREcountDOUBLE;SELECTcount(uid)INTOcountFROMTableWHEREcolumn1='xxxxx'ANDcolumn2='xxxxx';IF(count=0)THEN--peforminsertELSE--performupdateENDIF这是一个高性能应用程序。有什么想法吗?代码级别或查询级别仅供引用:数据库是Mysql 最佳答案

php - 如果存在则更新否则插入。 MySQL-PHP

我问这个问题是为了找到最佳实践。DB::table('owners')->where('property_id',$id)->update(array('person_id'=>$owner));问题是在表owners中可能没有要更新的行。在那种情况下,我需要制作一个INSERTINTO而不是UPDATE。我的问题是我必须每次运行2个查询,一个用于检查该行是否已存在,另一个用于更新或插入。每次运行2个查询是否正确?有没有更好的方法来实现这一目标?我需要为用户保持快速的查询过程。更新:owners表是多对多关系的中间表。很遗憾,我不能使用ONDUPLICATEKEY。

php - 如果数据存在于 mysql 数据库中,则使用它,否则使用占位符数据

我想做的是显示一些来自mysql数据库的数据,如果它是由用户设置的,如果它没有设置,那么我只想显示一些占位符或“虚拟”数据。例如,如果用户创建个人资料,他将默认获得一些随机或占位符图片作为个人资料图片,当他更改它时,我想从数据库中显示该图片。假设用户描述或“关于我”部分也是如此。这就是我目前所得到的prepare("SELECT*FROMuser_infoWHEREuserid=:userid");$getInfo->execute(array(':userid'=>$userID));$data=$getInfo->fetch(PDO::FETCH_ASSOC);$descripti

MySql - 如果存在则删除表 'whatever' 否则创建表 'whatever'?

我只是想删除表'whatever'如果它存在,然后如果可能的话在单个查询中重新创建表'whatever'。DROPTABLEIFEXISTS`whatever`ELSECREATETABLE`whatever`有什么想法吗? 最佳答案 CREATETABLE`whatever`IFNOTEXISTSELSETRUNCATE`whatever`使用TRUNCATE清空表并重置基数,而不是删除表并重新创建它。 关于MySql-如果存在则删除表'whatever'否则创建表'whatever'

mysql - 如何在 MySQL : if field value > 0 then minus one, 中执行此操作,否则就这样吧

UPDATEtblSETcounts=counts-1... 最佳答案 如果count是您要更新的唯一列(或者,您没有在where子句中指定其他条件),那么您可以在where子句中执行此操作UPDATE[Table]SETcounts=counts-1WHEREcounts>0;但是,如果您要更新同一查询中的其他列,这将不起作用。但是你有选择UPDATE[Table]SETcounts=MAX(counts-1,0);或UPDATE[Table]SETcounts=CASEWHENcounts>0THENcounts-1ELSE0E

mysql - SQL查询-如果存在则更新,否则插入

我需要为MySQL编写一个SQL查询,以便如果某行存在则更新它,如果不存在则插入它。即如果行存在...UPDATETable1SET(...)WHEREColumn1='SomeValue'如果不存在...INSERTINTOTable1VALUES(...)这可以在一个查询中完成吗? 最佳答案 我相信你需要颠倒你的逻辑才能让它工作:插入表-如果它存在(相同的键)然后更新它。这可以通过ONDUPLICATE语句来实现,如下所示:INSERTINTOTable1VALUES(...)ONDUPLICATEKEYUPDATEcolumn

Mysql:允许查询否则无法访问的列?

我有一个表格,其中有一列我想阻止某些用户看到。我知道我应该能够使用View来做到这一点,即有一个排除特定列的View,并拒绝访问表但允许访问View(注意,用户不需要能够更新表/View)。我确实但是想要允许对该字段进行相等查询。如:SELECT*FROMsome_table_or_viewWHEREhidden_field='some_value';澄清一下:不应在一般查询中返回hidden_​​field值应该可以在hidden_​​field值上运行带有约束(最好只有相等约束)的查询这可能吗?(编辑:如果在Mysql以外的dbms中有解决方案,我也很乐意听到)。