嘿伙计们我有一个类似
的表结构 CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
)
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1,'aff',2,3,5)
VALUES (2,'afff',1,31,52)
update CUSTOMERS
set NAME = 'somenewname'
where age = 1;
我只想将输出设为'somename'
我尝试使用updatedtime
创建列timestamp
并使用
SELECT * FROM CUSTOMERS ORDER BY updatetime DESC LIMIT 1;
但是这个显示了整个价值观。
我只需要更新的值' somenewname`作为输出。
我也尝试使用triggers and functions
,但它没有帮助..
请帮我解决一个问题..我会接受它作为答案,如果它对我有帮助..记得我希望输出为somenewname
这样的单一值。
感谢名单
我使用的触发器
CREATE TRIGGER getrandom
AFTER UPDATE ON CUSTOMERS
FOR EACH ROW
BEGIN
UPDATE CUSTOMERS
SET NAME = 'anewname'
WHERE ADDRESS = 3;
END;
答案 0 :(得分:0)
为什么不尝试选择仅name
- 列
SELECT name FROM CUSTOMERS ORDER BY updatetime DESC LIMIT 1; //outputs the name
而不是整个结果
SELECT * FROM CUSTOMERS ORDER BY updatetime DESC LIMIT 1;
您的更新语句应如下
update CUSTOMERS
set NAME = 'somenewname',
updatetime = now()
where age = 1;
现在举例说明如果加入表格,如何只获取name
。
SELECT c.name FROM CUSTOMERS as c INNER JOIN orders as o c.id=o.id ORDER BY c.updatetime DESC LIMIT 1;