我有一个带有电子邮件文本字段的html页面。当我输入电子邮件ID时,我将其存储在数据库中。该数据库有3个字段,即'serial_no','coupon_code','email'。我已经存储了100多个优惠券代码。所以基本上我有序列号1-100,优惠券代码1-100和我的电子邮件列是空白。我想给每封电子邮件一个独特的优惠券代码。因此,每当我在文本文件中添加电子邮件时,它都应该进入电子邮件列中的数据库,其中优惠券代码未分配给任何电子邮件。
我正在使用这个SQL查询:
for($n=1;$n<100;$n++)
{
$sql1='Update tbl SET email="'.$email.'" WHERE email="" && sr = "'.$n.'" ';
}
但这是替换表中的所有行。 我如何实现我的目标?
答案 0 :(得分:0)
试试这个:
$sql1='Update tbl SET email="'.$email.'" WHERE serial_no=(SELECT t.serial_no FROM tbl t WHERE t.email IS NULL ORDER BY t.serial_no LIMIT 1)';
内部子查询将给出电子邮件字段为空的第一个序列号。然后使用您从表单中获得的电子邮件地址更新该记录。所以这只会更新一条记录。
答案 1 :(得分:0)
使用以下查询
UPDATE `table_name` SET `email` = 'email_value' WHERE `email` IS NULL LIMIT 1;
内循环
它将在每次迭代时仅更新一个空值电子邮件记录