[英]How to add multiple rows of data from one sql table to another with selection based on checkboxes?
[英]Update Table Column in Multiple Rows based on a Selection in SQL
我已经使用SQL
Select语句选择了一组rows
,并且我试图弄清楚如何将table
的列更新为基于所述selection
的值。
选择:
SELECT user.userID FROM user WHERE user.status = '1' or user.status = '2' LIMIT 1000 OFFSET 50;
更新:
UPDATE user SET user.status = '3';
我要寻找的最终结果是将所有selected users
的status column
更新为“ 3”。 我希望能够在一个SQL query
执行此SQL query
,而不必循环或执行任何操作。
感谢您的见解!
更新:
抱歉! 我忘了加上offset
。 我想选择前50个返回的行之后的行。 因此,我希望前50个符合条件的行都将status列更改为3。
旧
更新用户SET user.status ='3'其中user.status ='1'或user.status ='2';
请尝试此查询...
新
编辑问题后(按偏移量)
请在下面的查询中查询您的补偿。
UPDATE user SET user.status = '3' where user.userID NOT IN(Select
userid from
(SELECT userID as userid FROM user WHERE status = '1' or status = '2' LIMIT 50)
as temptbl);
UPDATE user SET user.status = '3' where user.status in ('1', '2');
更新:
UPDATE user SET user.status = '3' where user.userID in (SELECT user.userID FROM user WHERE user.status = '1' or user.status = '2' LIMIT 1000 OFFSET 50);
请尝试这个
UPDATE user SET user.status = '3' WHERE user.status IN ( '1' , '2' )
使用两个子选择(感谢Yograj Sudewad向我指出我的错误)
UPDATE user
SET user.status = '3'
WHERE user.userID IN (
SELECT userId
FROM (
SELECT user.userID
FROM user
WHERE user.status = '1' or user.status = '2'
LIMIT 1000 OFFSET 50
) AS tableWithNoName
)
您也可以在UPDATE
使用SELECT
中的WHERE
部分。 像这样
UPDATE user
SET user.status = '3'
WHERE user.status = '1'
OR user.status = '2';
但是,如果要从uid列表中进行UPDATE,则:
<?php
// The uid list from the select may be
$uid_list = array(1,4,7,12,401);
// then you could make
$sql = "
UPDATE user
SET user.status = '3'
WHERE user.userID IN (" . implode(',', $uid_list) , ")
";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.