Php 更新查询更改多列中的值
如何编写查询来更改有特定值的多列中的值?我想更新一个表:查看40列(q1-q40),如果该列中的值为-1,则将所有行的值更改为-999。我是否仍然需要为每一列列出案例,还是有更简单的方法Php 更新查询更改多列中的值,php,sql,Php,Sql,如何编写查询来更改有特定值的多列中的值?我想更新一个表:查看40列(q1-q40),如果该列中的值为-1,则将所有行的值更改为-999。我是否仍然需要为每一列列出案例,还是有更简单的方法 谢谢 您想使用update语句。以下是我们需要做的事情: UPDATE table_name SET q1 = -999, q2 = -999, q3= -999 etc..... q40 = -999 WHERE q1 = -1, q2 = -1, q3= -1 etc...... q40 = -1;
谢谢 您想使用update语句。以下是我们需要做的事情:
UPDATE table_name
SET q1 = -999, q2 = -999, q3= -999 etc..... q40 = -999
WHERE q1 = -1, q2 = -1, q3= -1 etc...... q40 = -1;
这将更新您需要的行,尽管这将是一件痛苦的事情。自从你澄清了你的问题,我就更新了。你无法逃避冗长的方法 如果我能理解你的要求,我会想
UPDATE
table
SET
col00 = CASE WHEN col00 = -1 THEN -999 ELSE col00 END,
col01 = CASE WHEN col01 = -1 THEN -999 ELSE col01 END,
col02 = CASE WHEN col02 = -1 THEN -999 ELSE col02 END,
...
col37 = CASE WHEN col37 = -1 THEN -999 ELSE col37 END,
col38 = CASE WHEN col38 = -1 THEN -999 ELSE col38 END,
col39 = CASE WHEN col39 = -1 THEN -999 ELSE col39 END
WHERE
-1 IN (col00, col01, col02, ... col37, col38, col39)
或40个直接更新
这是一个很好的例子,说明编写SQL的代码何时是一种有用的方法。您必须表达所有40列的逻辑。没有跨多个列概括表达式的语法。请修复您的数据结构!用数字区分多列通常是数据设计不佳的标志。您可能应该有另一个表,每个“实体”和每个“q”值对应一行。谢谢MatBailie和Gordon Linoff。我明白了,今晚我会看数据结构和设计视频。谢谢你的反馈!