SQL如果条件为true更新表

时间:2019-01-28 20:36:41

标签: sql if-statement sql-update

我试图编写一条单行sql语句,该语句可以检查某个条件,如果条件满足,则需要使用新值更新表。下面是我想做的,我只是找不到解决方法。任何帮助将不胜感激。

Traceback (most recent call last):
  File "test_1_height_error.py", line 34, in <module>
    wrapper(main)
  File "/usr/lib/python3.7/curses/__init__.py", line 94, in wrapper
    return func(stdscr, *args, **kwds)
  File "test_1_height_error.py", line 12, in main
    window.addstr('*', color_pair(1))
_curses.error: addwstr() returned ERR

我遇到以下错误:

  

在上下文中指定的非布尔类型的表达式,其中   状况可能在“更新”附近

2 个答案:

答案 0 :(得分:3)

执行以下操作:

update table set field1 = '9876543210'
 where field1 = '0000000001' and field2 = 'XXX';

这样,您会将field1的所有行上的field1 == '0000000001' and field2 = 'XXX'值更新为值'9876543210'

答案 1 :(得分:1)

您可以在此处验证查询。您错过了EXISTS键进行检查。因此只有它会返回错误。

if (EXISTS(select 1 from table where field1 = '0000000001' and field2 = 'XXX'))

update table set field1 = '9876543210' where field2 = 'XXX'