更新查询问题。当应该有1行时更新0行.HeidiSQL

时间:2014-05-13 16:12:12

标签: mysql heidisql

我有一张这样的表:

ALTER TABLE `MW_Locations`  CHANGE COLUMN `ID` `ID` INT(20) NULL DEFAULT NULL FIRST,    CHANGE COLUMN `UDID` `UDID` INT(20) NULL DEFAULT NULL AFTER `ID`,   CHANGE COLUMN `IDACCOUNT` `IDACCOUNT` INT(20) NULL DEFAULT NULL AFTER `UDID`,   CHANGE COLUMN `Name` `Name` VARCHAR(50) NULL DEFAULT NULL AFTER `IDACCOUNT`,    CHANGE COLUMN `Lat` `Lat` DOUBLE NULL DEFAULT NULL AFTER `Name`,    CHANGE COLUMN `Lon` `Lon` DOUBLE NULL DEFAULT NULL AFTER `Lat`,     CHANGE COLUMN `IDMWDevice` `IDMWDevice` INT(50) NULL DEFAULT NULL AFTER `Lon`,  CHANGE COLUMN `Desc` `Desc` VARCHAR(50) NULL DEFAULT NULL AFTER `IDMWDevice`,   CHANGE COLUMN `IDAction` `IDAction` INT(20) NULL DEFAULT NULL AFTER `Desc`,     CHANGE COLUMN `Status` `Status` VARCHAR(50) NULL DEFAULT NULL AFTER `IDAction`,     ADD PRIMARY KEY (`IDACCOUNT`);

问题是我无法进行任何更新。就像这个:

UPDATE `MW_Locations` SET `IDACCOUNT`=1 WHERE  `ID`=0 AND `UDID`=0 AND `IDACCOUNT`=0 AND `Name`='Panteon' AND `Lat`=25.6789521128695 AND `Lon`=100.336310863495 AND `IDMWDevice`=0 AND `Desc`='' AND `IDAction`=0 AND `Status`='' LIMIT 1;

我正在使用heidisql连接到服务器 我所做的行是这些:enter image description here

想要将IDACCOUNT列的所有行设置为值“1”所以它将被分配给我的数据库中的用户1,稍后将引入一个json数据数组来执行某些任务。另外我想要增加ID,但它也会给我带来错误。

1 个答案:

答案 0 :(得分:1)

此查询失败,因为您要求DOUBLE字段LatLon完全相同。不需要这些列来标识您的行。将sql语句重写为

UPDATE `MW_Locations` 
   SET `IDACCOUNT`=1 
 WHERE `Name`='Panteon';

此列中的此值足以识别您的行。

我引用the MySQL manual

  

因为浮点值是近似值而不是精确存储   价值,试图在比较中对待它们可能会导致   问题。