python - 如何在多个条件下更新值

标签 python mysql python-3.x postgresql psycopg2

我有下表:

id - phone - value
1  - 1234  - null
2  - 4321  - null
3  - 1234  - null

我需要用 max(id) 的电话“1234”更新“值”列

id - phone - value
1  - 1234  - null
2  - 4321  - null
3  - 1234  - *updated

我尝试通过以下查询多次执行此操作:

cur.execute("UPDATE online_booking SET st1 = (%s) HAVING max(ID) and phone = (%s)", (st1, phone))

但它说“在“HAVING”处或附近出现语法错误”

最佳答案

您应该通过这样的子查询过滤 id:

UPDATE online_booking 
SET st1 = '*update' 
WHERE id = (
    SELECT max(id)
    FROM online_booking
    WHERE phone = '1234')

关于python - 如何在多个条件下更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48038472/

相关文章:

Python Tensorflow NoneType 不可迭代

python - TensorFlow:如何通过权重变量对批量张量进行批处理?

php - 如何使用 mysql 查询发布新闻

python - 使用协议(protocol) 2 : Python3->2 data 进行 pickle

python-3.x - ImportError : libcublas. so.9.0: 没有那个文件或目录

python - 如何将库添加到 pymol?

python - ChatCompletion 功能从 openai 模块中消失

mysql - Hibernate,Spring Data,在子表上插入父表的id

php - 从查询中获取所有月份,包括零计数

python - 数据框中特定行的总和( Pandas )