SELECT COUNT( 1 ) FROM ud_file_res WHERE min_bucket_name = '001',del_flag = 2 怎么修改
时间: 2024-03-20 14:45:26 浏览: 54
您可以将该 SQL 语句修改为如下形式:
```
SELECT COUNT(1) FROM ud_file_res WHERE min_bucket_name = '001' AND del_flag = 2;
```
主要修改如下:
1. 将逗号改为 AND,表示同时满足两个条件。
2. 去掉空格,使 SQL 语句更加规范。
相关问题
UPDATE ud_bucket ub SET ub.objects_size = ( SELECT SUM( e.file_size ) AS cnt FROM `ud_file_res` e WHERE min_bucket_name = '001' ) WHERE min_bucket_name = ud_file_res.min_bucket_name 改成正确的
你的 SQL 语句中存在错误。首先,在 UPDATE 语句中使用了 ud_file_res 表,但是在 SET 子句中却没有对应的列。其次,在 WHERE 子句中也存在错误,因为你不能在 SET 子句中引用 ud_file_res 表。
正确的 SQL 语句应该是这样的:
```
UPDATE ud_bucket
SET objects_size = (
SELECT SUM(file_size) AS cnt
FROM ud_file_res
WHERE min_bucket_name = '001'
)
WHERE min_bucket_name = '001';
```
这个语句将会更新 ud_bucket 表中 min_bucket_name 为 '001' 的行的 objects_size 列,将其设为 ud_file_res 表中 min_bucket_name 为 '001' 的所有行的 file_size 列的总和。注意,这里将 WHERE 子句中的 min_bucket_name 直接写为 '001',因为 SET 子句中的对象已经指定了需要更新的行。
UPDATE ud_bucket SET objects_size = ( SELECT SUM(file_size) AS cnt FROM ud_file_res WHERE min_bucket_name = '001' AS mName ) WHERE min_bucket_name = mName; 这样对吗
不对。在子查询中给 WHERE 子句设置别名是不允许的。因此,你需要对 SQL 语句进行一些修改。
正确的 SQL 语句应该是这样的:
```
UPDATE ud_bucket
SET objects_size = (
SELECT SUM(file_size) AS cnt
FROM ud_file_res
WHERE min_bucket_name = '001'
)
WHERE min_bucket_name = '001';
```
这个语句将会更新 ud_bucket 表中 min_bucket_name 为 '001' 的行的 objects_size 列,将其设为 ud_file_res 表中 min_bucket_name 为 '001' 的所有行的 file_size 列的总和。注意,这里将 WHERE 子句中的 min_bucket_name 直接写为 '001',因为 SET 子句中的对象已经指定了需要更新的行。
阅读全文