我想更新表中的一列。将列设置为 empty
然后执行 select 语句。
现在我正在尝试像下面这样做
UPDATE issue_meters
SET remarks = ''
( SELECT ps.name 'Store name'
, im.meter_serial 'Meter Serial Number'
, u.username Issuer
, im.remarks Remarks
FROM issue_meters im
JOIN project_store ps
ON im.store_id = ps.id
JOIN user u
ON im.issuer = u.id
)
它给了我下面的错误
错误代码:1064 您的 SQL 语法有错误;请检查 与您的MariaDB服务器版本相对应的正确手册 在"(选择PS.
name
作为"商店名称", im.meter_serial
作为"仪表序列号",在第 1 行
我想在同一个查询中做到这一点。
任何帮助将不胜感激
您可以在查询之间使用分号:
UPDATE `issue_meters` SET `remarks` = '';
SELECT ps.`name` AS 'Store name',
im.`meter_serial` AS 'Meter Serial Number' ,
u.`username` AS 'Issuer' ,
im.`remarks` AS 'Remarks'
FROM `issue_meters` im
INNER JOIN `project_store` ps ON im.`store_id` = ps.`id`
INNER JOIN `user` u ON im.`issuer` = u.`id`
也许您只需要在查询中测试 null 而无需更新基数
SELECT ps.name 'Store name'
, im.meter_serial 'Meter Serial Number'
, u.username Issuer
, ifnull(im.remarks,'') Remarks
FROM issue_meters im
JOIN project_store ps
ON im.store_id = ps.id
JOIN user u
ON im.issuer = u.id
不能使用单个查询
执行命令 必须使用两个 sql 命令
UPDATE issue_meters
SET remarks = '' ;
并且您不应该对列名别名使用单引号,但您需要对带有空格或保留字的列名别名使用背引号
SELECT ps.name `Store name`
, im.meter_serial `Meter Serial Number`
, u.username Issuer
, im.remarks Remarks
FROM issue_meters im
JOIN project_store ps ON im.store_id = ps.id
JOIN user u ON im.issuer = u.id
;