在DB表中,如何在选择查询后更新查询?

时间:2018-04-06 03:54:47

标签: mysql

我想在选择查询后进行更新查询。

第一个SELECT查询,<?php include_once 'Includes/dbh.inc.php'; $Title = $_POST['Title']; $content = $_POST['Text1']; $sql = "INSERT INTO posts (title, main) VALUES ('$Title', '$content');"; mysqli_query($conn, $sql); header("Location: ../Backend.php?Post=success"); ?> <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Backend</title> <link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet"> <link rel="stylesheet" tyle="text/css" href="Style.css"> </head> <body> <div class="head"> <h1>Make A Post</h1> <a href="Backend.delete.php">delete a post</a> </div> <form action="Includes/Post.inc.php" method="POST"> <input type="text" id = "title" name="Title" placeholder="Title"> <br> <textarea name="Text1" id= "content" placeholder="Content(1000 charecter limit)...." cols="90" rows="20"></textarea> <br> <button type="submit" id = "submit" name="submit">Post!</button> </form> </body> </html>

此选择查询基于seq,检索最后插入的记录。

我想要更新此记录。

第二次更新查询,SELECT * from be_settings order by seq desc limit 1

如何在选择查询后更新查询?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以通过子查询更新来执行此操作:

UPDATE be_settings
SET appgubun = 'CCTV', running = 'on'
WHERE seq = (SELECT t.max_seq FROM (SELECT MAX(seq) AS max_seq FROM be_settings) t );

WHERE子句中的子查询是必需的,因为它涉及be_settings表,它是更新的目标。以下内容会出错:

WHERE seq = (SELECT MAX(seq) FROM be_settings)

答案 1 :(得分:0)

你需要做

UPDATE be_settings set appgubun ='CCTV', running ='on' where  seq= '4'

假设seq上有be_settings列,并且它是主键。

和4是您从select query获得的最后一个插入ID。

如果你在基于编程语言的任何变量中得到那个seq,那么你必须使用那个特定的变量。

如果您不想使用子查询,则需要这样做。