标签: sql-update

这是MySQL中更新查询的正确方法吗?

我在php/mysql应用程序中找到一个bug时遇到了一些问题,我想知道我是否可以这样做:UPDATE table SET userid='2' WHERE userid='1'- >我可以更新我在WHERE中声明的内容吗?

mysql sql-update

1
推荐指数
1
解决办法
408
查看次数

使用列A和列B的值更新列C.

我需要实现这一目标

update [table]
set [column c] = ( select [column a] + ' ' + [column b] from [table] )
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息

子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

如何在没有不良结果的情况下达到预期的效果:)

吉姆

sql sql-update

1
推荐指数
1
解决办法
1389
查看次数

高效更新SQL,使用一个SQL语句更新多行,避免循环

我正在尝试避免在我正在处理的项目中的循环中进行数据库访问.对SQL不太好,我不确定最好的方法来解决这个问题.

我正在使用多个库存位置/选择位置更新销售过程中的库存级别数据库.

因此,这就是我在做的事情.

循环访问产品ID,然后循环浏览每个产品的选择位置并更新数量,例如:

For Each wProductId In calculatedProds.Keys '' loop through products requested passing values of pick locations
        For i = 0 To locationCount ' split the location value from the string as per above
            Dim thisLocation As Integer = locationID
            Dim thisQty As Integer = qtyPicked                
            Dim sql As String = "UPDATE `stockLevels` SET `stockLevel`=`stockLevel` - '" & thisQty & "' WHERE `stockLocation`='" & thisLocation & "' AND `id`='" & wProductId & "'"
            ' DO DATA ACCESS WITH …
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-update

1
推荐指数
1
解决办法
2852
查看次数

SQL查询以其他列的组合填充列

我有这种结构的桌子

ID | Parameter1 | Parameter 2  | Multiplication
1  |     1024   |     100      |
2  |     1200   |     200      |
3  |     1600   |     300      |
4  |     1900   |     400      |
Run Code Online (Sandbox Code Playgroud)

我想用参数1和参数2中的组合字符串填充列乘法

ID | Parameter1 | Parameter 2  | Multiplication
1  |     1024   |     100      |   1024_100
2  |     1200   |     200      |   1200_200
3  |     1600   |     300      |   1600_300
4  |     1900   |     400      |   1900_400
Run Code Online (Sandbox Code Playgroud)

请帮助我创建此SQLQuery

mysql sql sql-update

1
推荐指数
2
解决办法
5382
查看次数

使用子查询的WHERE中的相同表更新子查询

我在表"user"中有2个整数字段:leg_count和leg_length.第一个存储用户的腿数,第二个存储它们的总长度.

属于用户的每条腿存储在单独的表中,只要典型的互联网用户可以有零到无限的腿:

CREATE TABLE legs (
    user_id int not null,
    length  int not null
);
Run Code Online (Sandbox Code Playgroud)

我想在一个查询中重新计算所有用户的统计信息,所以我尝试:

UPDATE users SET
    leg_count = subquery.count, leg_length = subquery.length
FROM (
    SELECT COUNT(*) as count, SUM(length) as length FROM legs WHERE legs.user_id = users.id
) AS subquery;
Run Code Online (Sandbox Code Playgroud)

并获取"FROM中的子查询不能引用相同查询级别的其他关系"错误.

所以我必须这样做

UPDATE users SET
    leg_count =  (SELECT COUNT(*)    FROM legs WHERE legs.user_id = users.id),
    leg_length = (SELECT SUM(length) FROM legs WHERE legs.user_id = users.id)
Run Code Online (Sandbox Code Playgroud)

是什么让数据库为每一行执行2个SELECT,但是,所需的数据可以在一个SELECT中计算:

SELECT COUNT(*), SUM(length) FROM legs;
Run Code Online (Sandbox Code Playgroud)

是否可以优化我的UPDATE查询以仅使用一个SELECT子查询?

我使用PostgreSQL,但我相信,任何SQL方言都存在解决方案.

TIA.

sql count aggregate-functions sql-update

1
推荐指数
1
解决办法
9025
查看次数

MySQL将前导数字添加到列中的现有ID

我有一个名为country_id的mysql数据库列,如:

country_id
----------
1
2
59
435
2714
Run Code Online (Sandbox Code Playgroud)

我现在想要完成的是为每个ID添加前导零,所以结果将是:

country_id
----------
0001
0002
0059
0435
2714
Run Code Online (Sandbox Code Playgroud)

每个ID最多应有4位数字.而已.

我是否可以在PHPmyAdmin中使用任何SQL语句以上述方式更新此country_id列?

最好的祝福!

mysql phpmyadmin sql-update

1
推荐指数
1
解决办法
7055
查看次数

找不到简单的sql列

我在这个SQL中做错了什么:

Update products 
Set products.products_status = 0
Where products.products_id = products_to_categories.products_id And
products_to_categories.categories_id = 114
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:#1054 - 'where子句'中的未知列'products_to_categories.products_id'但该列确实存在,我检查了拼写.

mysql sql sql-update

1
推荐指数
1
解决办法
2008
查看次数

更新/删除查询的性能

我想用同一个表生成的值更新我的表.

我的目标是使用像_NS和_WP这样的proftxt搜索所有行,并使用相同的ao,
将它们相加,将值除以ao 的_H,_G,_L-Elements的数量,并将此值添加到_H,_G和_o的那些对象.

对于ao,可能只有_NS和_WP行.比例程应跳过这个ao.

例:

我的数据如下:

an, ao, proftxt, value, year  
101 , 1, 'e_NSe', 5, 2006  
102 , 1, 'e_Ha', 1, 2006  
103 , 1, 'w_NSr', 4, 2006  

104 , 2, 'w_NSr', 2, 2006  
105 , 2, 'x_H05r', 4, 2006   
106 , 2, 'w_Gr', 2, 2006   
107 , 2, 'a_WPr', 4, 2006 

108 , 3, 'a_WPr', 4, 2006 
Run Code Online (Sandbox Code Playgroud)

我的数据应该是这样的:

an, ao, proftxt, value, year  
102 , 1, 'e_Ha', 10 2006  

103 , 2, 'x_H05r', 7, 2006  
103 , …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server query-performance sql-update sql-delete

1
推荐指数
1
解决办法
385
查看次数

PDO添加一个值

我是PDO的新手,我正在尝试创建一个按钮,当用户按下它时,相应数字的值增加1.

$statement = "UPDATE table SET counter=? WHERE id=?";
$z = $db->prepare($statement);
$z->execute(array($counter+1,$id));
Run Code Online (Sandbox Code Playgroud)

$id 正在发送,但我不知道如何添加一个到柜台.

php database pdo sql-update

1
推荐指数
1
解决办法
2844
查看次数

如何为每一行更新不同的值?

我有一个Postgres表predicted_data:

 id | lat | lon | predicted
----+-----+-----+-----------
  1 |   1 |   1 |         10
  2 |   2 |   2 |         20
  3 |   3 |   3 |         30
Run Code Online (Sandbox Code Playgroud)

我有另一个表observed_data:

 id | lat | lon | observed | error
----+-----+-----+----------+-------
  1 |   1 |   1 |       11 |
  2 |   2 |   2 |       25 |
  3 |   3 |   3 |       32 |
Run Code Online (Sandbox Code Playgroud)

我要填充的error列observed_data。对于第一行,我将执行以下操作:

UPDATE observed_data 
SET error = 
((SELECT …
Run Code Online (Sandbox Code Playgroud)

postgresql join sql-update

1
推荐指数
1
解决办法
33
查看次数