如何在MySql中实现更新机制?

如何在MySql中实现更新机制?,mysql,database,Mysql,Database,我的用例: 我正在尝试创建一个GUI并用MYSQL数据库实现它。我面临的问题是,当我必须更新数据库中的某个条目时 我知道我们可以使用以下方法更新MYSQL数据库中的条目: ALTER TABLE SET WHERE 例如:如果我想更改id为2的人的姓名,我必须写: ALTER TABLE StudentInfo SET Name='ABC',其中id=2 但问题是,在基于GUI的环境中,用户可以选择更新任何特定值,而不需要像上一个示例中的id这样的常量条件 在UI中,用户可以选择从参数中选择任

我的用例: 我正在尝试创建一个GUI并用MYSQL数据库实现它。我面临的问题是,当我必须更新数据库中的某个条目时

我知道我们可以使用以下方法更新MYSQL数据库中的条目:

ALTER TABLE SET WHERE

例如:如果我想更改id为2的人的姓名,我必须写:

ALTER TABLE StudentInfo SET Name='ABC',其中id=2

但问题是,在基于GUI的环境中,用户可以选择更新任何特定值,而不需要像上一个示例中的
id
这样的常量条件

在UI中,用户可以选择从参数中选择任何内容并进行修改,然后单击更新按钮

现在,当我需要更新数据库时,我将如何确定在MYSQL查询中放入什么内容

任何帮助都将不胜感激

您可以使用命令not更新表格,该命令将更改表格。gui已经知道如何识别案例中的行,例如通过列名

UPDATE StudentInfo SET Name='ABC' WHERE Name='QUERTY';
参见示例


因此,如果您与John Smith有两行,您仍然可以更新正确的一行,我认为这行不通,因为用户可以选择只修改
名称
(在这种情况下,我们只需
设置名称=…
)或选择修改3个参数。imo最好的方法是删除以前的条目并添加新条目:-)我嵌入了这样的表,所以即使名称是主键也没有问题,您可以更改它,但您需要自动更新名称的外键。只要mysql能够找到行(或多行),您就可以一次性更改所有文件(列),唯一的想法就是记住这些约束
CREATE TABLE StudentInfo(

    Name VARCHAR(20),
    class int,
    section VARCHAR(2),
    roll_no int
);
INSERT INTO StudentInfo VALUES ('abc',12,'A',18), ('xyz',12,'A',17),('QUERTY',12,'A',16)
UPDATE  StudentInfo SET Name='ABC',class = 15,section = 'B',roll_no= 99 WHERE Name='QUERTY';
SELECT * FROM StudentInfo
Name | class | section | roll_no :--- | ----: | :------ | ------: abc | 12 | A | 18 xyz | 12 | A | 17 ABC | 15 | B | 99
 UPDATE StudentInfo SET Name='ABC' WHERE id = 3;