Mysql 根据条件更新表
我必须从设置的一个表(“学生”、“教职员工”)中获取类型,根据结果我必须更新教职员工或学生班级考勤表,我尝试这样做Mysql 根据条件更新表,mysql,Mysql,我必须从设置的一个表(“学生”、“教职员工”)中获取类型,根据结果我必须更新教职员工或学生班级考勤表,我尝试这样做 SELECT TYPE CASE WHEN TYPE = 'staff' THEN UPDATE staff_attendance SET statues = 1 WHERE staff_id = (SELECT type_id FROM rfid_details WHERE rfid_no = '124' ) WHEN TYPE = 'stu
SELECT TYPE
CASE WHEN TYPE = 'staff' THEN
UPDATE staff_attendance SET statues = 1 WHERE staff_id = (SELECT type_id FROM rfid_details WHERE rfid_no = '124' )
WHEN TYPE = 'student' THEN
UPDATE student_class_attendance SET statues = 1 WHERE student_id = (SELECT type_id FROM rfid_details WHERE rfid_no = '124' )
END
FROM rfid_details WHERE rfid_no = '124'
而且
SELECT TYPE IF(TYPE = staff,
UPDATE staff_attendance
SET statues = 1
WHERE staff_id =
SELECT type_id
FROM rfid_details
WHERE rfid_no = '124' ,UPDATE student_class_attendance
SET statues = 1
WHERE student_id=
SELECT type_id
FROM rfid_details
WHERE rfid_no = '124' ) FROM rfid_details WHERE rfid_no = '124'
但是显示
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在“CASE WHEN TYPE=”staff“附近使用的正确语法
第2行时更新员工考勤设置状态=1
如果呢
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解使用near'IF(type=staff,
更新员工出席率
设置雕像=1
1号线的工作人员在哪里
plz帮助解决此问题您无法在select语句中进行更新。您可以尝试以下操作:
UPDATE staff_attendance SET statues = 1 WHERE staff_id = (SELECT type_id FROM rfid_details WHERE rfid_no = '124' and type = 'staff');
UPDATE student_class_attendance SET statues = 1 WHERE student_id = (SELECT type_id FROM rfid_details WHERE rfid_no = '124' and type = 'student');
不要将要更新的逻辑表放在SQL中。在周围的编程语言中这样做。在
类型
后需要一个逗号。这似乎与PHP无关。以后请查看。我恐怕无法读取第二个查询…也无法编辑它,因为其他人已经尝试修复它。在SQL中不可能执行动态查询像这样更新查询..最好是创建一个可更新的视图。。