创建用户表和智能家居状态表

-- 创建用户表
CREATE TABLE IF NOT EXISTS users (
    uid INTEGER PRIMARY KEY AUTOINCREMENT,
    username varchar(10), 
    passwd varchar(10)
);


-- 创建智能家居状态表
CREATE TABLE IF NOT EXISTS Status (
    sid INTEGER PRIMARY KEY AUTOINCREMENT,
    uid INTEGER ,
    device_name varchar(10),
    device_state varchar(10),
    value varchar(10),
    mode varchar(20),
    FOREIGN KEY (uid) REFERENCES users (uid)
);

更新最新设备模式

想要更新最新一次uid为123的设备的mode值,可以使用以下SQL语句:

UPDATE Status
SET mode = '新的mode值'
WHERE sid = (
    SELECT sid
    FROM Status
    WHERE uid = 123
    AND device_name IN ('空调', '智能灯', '窗帘', '加湿器')
    ORDER BY sid DESC
    LIMIT 1
);

解释:

  • UPDATE Status:更新 Status 表中的数据。
  • SET mode = '新的mode值':将 mode 列的值设置为 '新的mode值'。
  • WHERE sid = (SELECT ...):更新 sid 值等于子查询结果的记录。
  • SELECT sid FROM Status WHERE uid = 123 AND device_name IN ('空调', '智能灯', '窗帘', '加湿器') ORDER BY sid DESC LIMIT 1:子查询用于获取最新一次uid为123的空调、智能灯、窗帘和加湿器的 sid 值。

注意:

  • 替换 '新的mode值' 为你想要更新的实际模式值。
  • 确保 device_name 列的值与设备名称一致。
  • 此代码仅更新最新一次设备的模式值。如果你需要更新所有符合条件的设备,请删除 LIMIT 1 子句。
MySQL创建用户表和智能家居状态表并更新最新设备模式

原文地址: http://www.cveoy.top/t/topic/fC0m 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录