我们有一张地方表.在我们的表中可能会多次出现相同的地方(糟糕的设计,而不是我们的选择).我们有人经历并找到每个地方的地址.他们只更新了每个地方的众多实例中的一个.
这是一个不起作用的查询,但我认为显示了我想要做的事情.
update places set address1 = places2.address1
inner join places places2 ON places.placename = places2.placename
where (places2.address1 <> '' AND places2.address1 is not null)
Run Code Online (Sandbox Code Playgroud)
有人想给我一个正确方向的推动吗?
查询:
UPDATE
node as n
right join content_type_product as c
on n.nid = c.nid
right join uc_products as p
on p.nid = n.nid
set
c.field_product_price_eur_value = p.sell_price * 0.0961,
c.field_product_price_zar_value = p.sell_price * 1,
c.field_product_price_gbp_value = p.sell_price * 0.0844,
c.field_product_price_usd_value = p.sell_price * 0.1305,
n.changed = now()
where n.type = 'product'
Run Code Online (Sandbox Code Playgroud)
对于那些尚未弄明白的人,此查询将Drupal站点上的所有NODES更新为所有具有最新货币的NODES.我的问题是,如果您有以下问题,此查询有多危险:
如果这个命令每小时执行一次?
我需要知道我是否应该每隔几个小时执行一次这个查询,或者我是否应该将其限制为一次只更新500个等等.
将执行此操作的站点将具有多个节点条目,并且此查询为每1个产品更新了2行.所以,如果我有大量的节点,我不确定这会给服务器带来多大的压力.
我在ubuntu 12.10和MySQL Workbench上使用MySQL 5.1.41.
我有2个产品表,t1和t2.t1是实时数据,t2是准备更新到t1的导入数据,用于更新所有新产品价格.所以我跑:
SELECT * FROM t1
JOIN t2 ON t1.id = t2.id
WHERE t1.price != t2.price;
Run Code Online (Sandbox Code Playgroud)
这将返回1201记录,其中价格不同并需要更新.所以我跑:
UPDATE t1 JOIN t2 ON t1.id = t2.id
SET t1.price = t2.price
WHERE t1.price != t2.price;
Run Code Online (Sandbox Code Playgroud)
这完成没有错误并报告1143行受影响,行匹配:1143更改:1143警告:0
所以这里已有的东西不对.选择查询中有1201条记录不同,但只有1143条使用相同的连接和条件进行了更改?
运行初始选择查询我希望看到仍有不同价格的58条记录.但是当它运行时,我得到了与我最初相同的1201.就像没有提交更新一样.
有任何想法吗?
我试图在update语句中使用count重新调整的值.但是获得语法错误.子查询正在运行.但更新查询无效.获得正确结果需要进行哪些更改?
update Items set numberOfBids = count (select * from Bids where id ='1673078805') where id='1673078805';
Error: near "select": syntax error
sqlite> select * from Bids where id ='1673078805';
1673078805|brettgodfrey|14.52|2001-12-05 10:40:41
1673078805|gardnerstoys|15.04|2001-12-06 07:40:41
1673078805|tallulahbankhead|14.01|2001-12-04 13:40:41
1673078805|tgrhino@home.com|15.55|2001-12-07 04:40:41
1673078805|yesterdaysgem|16.06|2001-12-08 01:40:41
sqlite> update Items set numberOfBids = 5 where id='1673078805';
Run Code Online (Sandbox Code Playgroud) 我正在更新一个表可能不存在的行.如果它不存在,我需要插入.我最初计划知道我需要根据update语句中的负返回值进行插入,但它不返回任何负数.
我怎么知道更新没有做任何事情?做另一个查询,看看有什么吗?或者之前可能是查询?
谢谢!
卡住了,需要一些帮助,这应该是相对简单的,但现在已经几周了我的祸根,并且放弃了!问题是我的社交网络的用户注册表单我正在构建我想要做的是当用户将他们的地址输入数据库时用+替换空格.我有一个名为activation.php的页面,当用户激活你的电子邮件地址并且页面上有这个代码块时,它会被调用.
$sql = mysql_query("UPDATE myMembers SET email_activated='1' WHERE id='$id' AND password='$hashpass'");
$sql = mysql_query("UPDATE myMembers SET firstname = REPLACE(firstname, ' ', '+'");
$sql = mysql_query("UPDATE myMembers SET lastname = REPLACE(lastname, ' ', '+'");
$sql = mysql_query("UPDATE myMembers SET housenumber = REPLACE(housenumber, ' ', '+'");
$sql = mysql_query("UPDATE myMembers SET addressone = REPLACE(addressone, ' ', '+'");
$sql = mysql_query("UPDATE myMembers SET addresstwo = REPLACE(addresstwo, ' ', '+'");
$sql = mysql_query("UPDATE myMembers SET county = REPLACE(county, ' ', '+'");
$sql = mysql_query("UPDATE …Run Code Online (Sandbox Code Playgroud) 我需要image_id在user_group表中更新名称匹配的image_id2in 值view_kantech_images.
我的查询返回错误:
update user_group
set image_id = (select vkm.image_id2
from view_kantech_matched as vkm
where vkm.name like user_group.name)
where name = view_kantech_matched.name
Run Code Online (Sandbox Code Playgroud)
它返回的错误是:
消息4104,级别16,状态1,行1
无法绑定多部分标识符"view_kantech_matched.name".
我有以下代码:
$pdo = new PDO('mysql:host=localhost:3306;dbname=web190_db8', 'web190_8', 'password');
$statement = $pdo->prepare("UPDATE channelbro_rss SET links = ? WHERE channel = ?");
$statement->execute(array($links_new, $channel));
Run Code Online (Sandbox Code Playgroud)
但是如何设置数据库$links_new的当前值links以及新值?
例如:
links数据库中的值是test.首先,我想要回显此值,然后将值更新links为当前值(test)加上另一个变量(以逗号分隔).例如:更新links到test, new.如果我再次完成这一切,它会将其更新为test, new, hello(新值始终是$new).
每当我尝试运行此代码时,它返回一个语法错误,我已经遵循了这里发布的几种格式,但我没做什么似乎工作.我怎样才能解决这个问题?
with adoQuerysupplier do
begin
sql.Clear;
sql.Add('UPDATE SupplierList');
SQL.Add('SET :Column = :newdetail');
SQL.Add('WHERE :Column1 = :OldDetail');
Parameters.ParseSQL(adoQuerysupplier.SQL.Text, True);
Parameters.ParamByName('Column').Value:= column;
Parameters.ParamByName('Column1').Value:= column;
Parameters.ParamByName('newdetail').Value:= newdetail;
Parameters.ParamByName('OldDetail').Value:= olddetail;
ExecSQL;
Run Code Online (Sandbox Code Playgroud)
所有变量都是字符串并且已成功捕获.这是我的第一个问题,所以如果我有任何格式错误,我会提前道歉.如果我需要发布更多代码,请告诉我.表名不是变量
在InfluxDB测量中,如何更新与查询匹配的点的字段值?从v1.6开始,这仍然不容易实现吗?
如该GitHub票证中的示例所示,实现这种目标的最干净方法是什么?
UPDATE access_log SET username='something' WHERE mac='xxx'
Run Code Online (Sandbox Code Playgroud)
有什么比通过更新单个点从客户端驱动全部操作更好的方法吗?
sql-update ×10
sql ×6
mysql ×3
php ×3
sql-server ×2
count ×1
database ×1
delphi ×1
drupal ×1
drupal-nodes ×1
echo ×1
influxdb ×1
inner-join ×1
insert ×1
join ×1
pdo ×1
server-load ×1
transactions ×1