我现在有一个问题,向网站会员发送短消息。
数据库模型是这样的,有三个表,分别是users(user_id),user_sms(user_id,sms_id),sms(sms_id)。
现在有一个需求是向多个用户发送短消息。user_id列表已经保存在数组中了,sms_id为固定的值1。现要向users_sms表中为每一个用户插入一条记录(user_id,1)。
比如user_id列表保存在数据user_list中(比如有四个用户a,b,c,d),sms_id的值为1。要求的结果是向user_sms表插入四条记录(a,1),(b,1),(c,1),(d,1),请问SQL语句应该怎么写?
现在有两种方法:
1:遍历数据user_list,每遍历一次向user_sms表中插入一条记录。显示如果记录条数太多,速度上就太慢。
2:insert into user_sms(user_id,sms_id) select user_id,1 from users where user_id in $user_list;这一种方法不好的地方就是,我已经得到了user_id列表,向user_sms表中插入记录应该不需要再和表users有关联。请问各位大虾有没有什么更好的方法?