草庐IT

Update-Database

全部标签

MySQL:INSERT IGNORE 或 ON DUPLICATE KEY UPDATE 检查多个列而不是唯一列

如果存在包含特定值的行,我想插入行,如果不存在,则更新它。具体来说:user_id=5,user_zip=12345,distance=600列存在于数据库中。如果我尝试插入user_id=5,user_zip=12345,distance=700它应该只更新distance但我尝试插入user_id=5,user_zip=67890,distance=800它应该插入一个新行。我无法定义列user_zip和distance唯一,因此我可以使用重复键更新。 最佳答案 我认为您误解了ONDUPLICATEKEYUPDATE的工作原理。

mysql - INSERT SELECT ON DUPLICATE UPDATE 的 SQL 语法

我想对一个表中的行进行分组和聚合,然后插入到另一个表中,然后更新聚合值。它的SQL命令是什么?INSERTINTOtbdetail(detail,views)(SELECTdetail,SUM(views)ASviewsallFROMtbGROUPBYdetail)//ONDUPLICATEKEYUPDATEviews=views+viewsall 最佳答案 在MySQL中,当使用INSERT...SELECT语句时,您可以使用VALUES()引用SELECT语句的值之一功能:INSERTINTOtbdetail(detail,vi

mysql - Codeigniter db->update() VS MySQL native 更新受影响的行 : 0

单独使用MySQL-如果我对这样的表进行基本更新:UPDATE`SOMETABLE`SET`NAME`='John'WHERE`ID`=1;NAME='John'的值已经是'John'-换句话说-没有什么是新的,没有什么更新。MySQL返回“受影响的行:0(查询耗时0.0007秒)”如果我进行相同的调用-现在使用CodeIgniter-然后像这样检索受影响的行:$data=array('NAME'=>'John');$this->db->where('ID',1);$this->db->update('SOMETABLE',$data);$affect=$this->db->affec

php - 使用 Mysqli : Is there a way to not have to connect to the database every single query?

我刚刚开始使用MYSQLi而不是MYSQL,我遇到了一个巨大的烦恼:每次查询等都必须连接到数据库。为什么我现在必须在旧的MYSQL中不这样做?或者有没有办法不必这样做?几个例子:MySQL:mysql_query("SELECTidFROMtable");现在在Mysqli中我总是要做:mysqli_query($db,"SELECTidFROMtable");我还必须这样做:mysqli_last_id($db);和mysqli_real_escape_string($db);我整晚都在试图找到这个问题的答案,但我找不到任何东西。 最佳答案

php - 使用 PHP 使用 UPDATE MySQL 更新数据库中的 blob 图像

我正在尝试更新我的数据库中的一条记录,它是一个blob类型,我可以使用这种方法很容易地插入,但是当使用UPDATE时它似乎不起作用,仅适用于文本。有人能给我指出正确的方向吗?这是我的代码:$uimageData是一个变量,其中包含从我的表单上传到另一个文件中的文件。我尝试更新blob的数据库中的列称为“图像”。这可能会有所帮助,这是另一个.php中的表单代码,更新plant.php从中触发:";echo"";echo""."";echo""."";echo""."";echo""."";echo""."";echo""."";echo"".''."";echo""."";echo"".

mysql - 使用 update 更新两个表中的任何一个

我有两个表user_pv和vendors_pv都有相同的字段。users_pv=>有用户和他们的余额vendors_pv=>有供应商和他们的余额现在我想根据通过某些php进程获得的a值更新用户或供应商的余额。所以我写了一个这样的查询updateusers_pvaINNERJOINvendors_pvbseta.Balance=a.Balance+'240',b.Balance=b.Balance+'40'wherea.UserId='someid'orb.UserId='someid'基本上这个someid值可能在任何一个表中。所以我需要用UserIdsomeid更新用户Bu这里的问题

mysql - "lettercase"语句中的 "CREATE DATABASE"是什么?

在documentation,据说:TableanddatabasenamesarestoredondiskusingthelettercasespecifiedintheCREATETABLEorCREATEDATABASEstatement.我在Google上搜索了很多,想知道如何在特定的CREATEDATABASE语句中使用“lettercase”,但没有找到。 最佳答案 表和数据库名称区分大小写取决于运行MySQL的系统。名称存储在单独的文件名中。因此,例如,Windows上的文件名不区分大小写,但Linux上的文件名区分大

php - 无法连接到数据库。连接器返回编号 : Database sqlsrv_connect failed

我无法将Joomla连接到MSSQL我不断得到Couldnotconnecttothedatabase.Connectorreturnednumber:Databasesqlsrv_connectfailed我使用的是MySQLi驱动程序还是我安装的驱动程序(MicrosoftSQLServer)似乎是驱动安装问题,我可以使用Mssql客户端连接到同一个盒子...有人可以解释一下如何从头开始在PHP上为Joomla安装MSSQL驱动程序吗?或者发送有关如何执行此操作的最新引用资料?Joomla3.4PHP5.6IIS7.5MSSQL2008R2如果我将驱动程序切换为:php_sqlsr

带有 null 子查询的 MySQL UPDATE

我正在尝试使用子查询将所有飞机的状态更新为当前外出且尚未返回的“OUT”。我的外键是PLANE_NUM。我正在这样尝试,但出现错误:UPDATEplaneSETSTATUS='OUT'WHEREPLANE_NUMIN(SELECT*FROMplanep,flightfWHEREp.PLANE_NUM=f.PLANE_NUMANDFLIGHT_RETURNDATEISnull); 最佳答案 更好的方法是加入updateplanepleftjoinflightfonp.PLANE_NUM=f.PLANE_NUMSETp.STATUS='

php - 如何在 MySQL UPDATE 查询期间连接两个字符串?

用例:创建记录现货、代码、语言、计数...后来发现输入的语言是错误的。尝试使用UPDATE查询更改语言。连接的字符串仍然显示相同。更新后的语言字符串在连接字符串中未更改。使用这个MySql查询创建记录$sql="INSERTINTOlibrary(spot,code,language,count,litcode)values(?,?,?,?,CONCAT(language,'-',code))";尝试使用此MySql查询更新语言Database::connect();$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)