php - 如何使用日期时间字段仅更新最旧的记录?
问题描述
好的,所以我有这个已经注册的人的等待列表,并且我有一个“下一个人”按钮,它使用 AJAX 调用 PHP 脚本,该脚本应该从等待列表中删除最旧的记录(换句话说,下一个人)。
好吧,我正在尝试构建此查询,该查询仅更新表中尚未参加的最年长的人。这是我的查询:
UPDATE queue
SET ATTENDED='1'
WHERE VISIT_DATE = (SELECT * WHERE ATTENDED='0' ORDER BY VISIT_DATE ASC LIMIT 1)
这是我的表(队列):
ID int(11)
GUEST_NAME varchar(50)
VISIT_DATE datetime(6)
ATTENDED int(11)
问题是我收到错误“ MySQL error 1241: Operand should contain 1 column(s) ”。
我做错了吗?
解决方案
问题在于你的WHERE
条款。您正在与VISIT_DATE
表格的整行进行比较。
正如@Hudson 所指出的,您还缺少获得最早日期的表格。因此,您的查询应如下所示:
UPDATE
queue AS UpdateTbl
SET
UpdateTbl.ATTENDED='1'
WHERE
UpdateTbl.VISIT_DATE = (SELECT
ReadTbl.VISIT_DATE
FROM
(select * from queue) AS ReadTbl
WHERE
ReadTbl.ATTENDED='0'
ORDER BY
ReadTbl.VISIT_DATE ASC
LIMIT 1)
推荐阅读
- python - 使用递归函数创建 Python 脚本以显示前 n 个整数的总和,其中 n 由用户输入
- reactjs - 如何根据 URL 参数默认路由
- javascript - 向 generateRandomNumber 函数添加规则
- php - 在 WooCommerce 我的帐户页面上隐藏状态为(待付款)的订单
- javascript - TypeError:无法读取未定义的属性“get”:节点 js 错误
- swift - SwiftUI:如何使用 VStack、HStack 移动文本或其他内容?
- php - Saxon/C PHP apache 进程在调用 compileFromString 时卡在 FUTEX_WAIT_PRIVATE
- javascript - JS表输入值转JSON
- typo3 - 如何让 extbase 存储库尊重映射到 pages 表的模型的 l18n_cfg?
- ios - Swift Button 在整个区域都不可点击