gpt4 book ai didi

mysql - 将 mysql 表的所有列设置为特定值

转载 作者:行者123 更新时间:2023-11-29 01:33:09 24 4
gpt4 key购买 nike

h有什么方法可以一次性将特定记录的 mysql 表的所有列更新为特定值。

例如我有一个大约有 70 列的表,在创建表时它们默认设置为 0,当我通过 PHPmyadmin 添加新记录时只需填写一个或两个值并提交所有其他字段是设置为 0 ,但我想将所有字段设置为 1很多次,所以我需要通过 PHPmyadmin 将所有列分别设置为 1

为了加快这个过程和我试过了

UPDATE tablename SET * = '1' WHERE id = '2' ,但它不起作用。

如果有人能提供类似的解决方案,那就太好了。

编辑:


有没有在SQL语句中不指定所有70列的方法?那就是我要找的。我确实知道如何在 SQL 语句中更新通常指定的列。谢谢。

最佳答案

如果您正在寻找一种使用简短语句将所有 70 列更新为单个值的方法,那么我建议您编写一个存储过程来执行更新。这样一来,您只需编写一次完整的更新语法,就可以通过调用存储过程反复使用它。

CREATE PROCEDURE update_all_columns (p_new_value SMALLINT, p_id INT) ...

CALL update_all_columns(1,2);

另一个技巧是使用 information_schema.columns 表来生成更新语句,从而使存储过程的编码变得不那么乏味。

像这样:

SELECT concat('UPDATE ',
table_name,
' SET ',
group_concat(column_name separator ' = p_new_value, '),
' = p_new_value',
' WHERE id = p_id;') as sql_stmt
FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND table_name = 'tablename'
AND column_name != 'id'

关于mysql - 将 mysql 表的所有列设置为特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5245425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com