仅从表中查找最新的更新值

时间:2014-11-15 16:08:40

标签: php mysql

嘿伙计们我有一个类似

的表结构
 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;

1 个答案:

答案 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;