我想更新表格中的列。将列设置为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
as' Meter序列号' ,'在第1行
我想在同一个查询中执行此操作。
任何帮助都将受到高度赞赏
答案 0 :(得分:2)
您可以在查询之间使用分号:
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`
答案 1 :(得分:0)
您无法使用单个查询执行命令 您必须使用两个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
;
答案 2 :(得分:0)
也许您只需要在查询中测试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