Php 仅从表中查找最新更新的值
嘿,伙计们,我的桌子结构像Php 仅从表中查找最新更新的值,php,mysql,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,NA
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'
我尝试创建一个列updatetime
,带有timestamp
,并使用了如下查询
SELECT * FROM CUSTOMERS ORDER BY updatetime DESC LIMIT 1;
但这张照片展示了整个价值观
我只需要更新的值'somenewname'作为输出
我也尝试过使用触发器和函数
,但没有效果
请帮助我找到一个解决方案。如果它对我有帮助,我会接受它作为答案。请记住,我希望输出为单个值,如somenewname
塔克斯
我用过的扳机
CREATE TRIGGER getrandom
AFTER UPDATE ON CUSTOMERS
FOR EACH ROW
BEGIN
UPDATE CUSTOMERS
SET NAME = 'anewname'
WHERE ADDRESS = 3;
END;
为什么不尝试仅选择
名称列
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;
下面是一个示例,演示如何在表被联接时仅获取名称
SELECT c.name FROM CUSTOMERS as c INNER JOIN orders as o c.id=o.id ORDER BY c.updatetime DESC LIMIT 1;
在表中有updatetime
列的位置?在示例update语句中,一个事务中可能会更新许多行。哪一行应被视为最近更新的行?这里有很多边缘案例。这只是其中一个例子。这个问题的解决方案是触发器,所以请发布你使用的触发器(你说它不起作用),这里的人会帮你解决。18,2?我能找份工作吗?@ShrinathKuppa请帮帮我。我已经按照你说的编辑了我的问题,正如我告诉你的,我只定义了更新后的值,我只需要输出为somenewname。第一条SQL语句应该只输出名称。你从那句话中得到了什么?我告诉过你我已经更新了我的表..在值为somenewname的列名上,我只希望输出为somenewname