我在php/mysql应用程序中找到一个bug时遇到了一些问题,我想知道我是否可以这样做:UPDATE table SET userid='2' WHERE userid='1'- >我可以更新我在WHERE中声明的内容吗?
我需要实现这一目标
update [table]
set [column c] = ( select [column a] + ' ' + [column b] from [table] )
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息
子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.
如何在没有不良结果的情况下达到预期的效果:)
吉姆
我正在尝试避免在我正在处理的项目中的循环中进行数据库访问.对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) 我有这种结构的桌子
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
我在表"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.
我有一个名为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列?
最好的祝福!
我在这个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'但该列确实存在,我检查了拼写.
我想用同一个表生成的值更新我的表.
我的目标是使用像_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) 我是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 正在发送,但我不知道如何添加一个到柜台.
我有一个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) sql-update ×10
mysql ×5
sql ×5
count ×1
database ×1
join ×1
pdo ×1
php ×1
phpmyadmin ×1
postgresql ×1
sql-delete ×1
sql-server ×1
t-sql ×1