您好,查询如下:
SELECT code FROM tbl_codes WHERE used='0' ORDER BY RAND() LIMIT 2;
这将导致2个具有唯一值的代码(例如:code = 1 code = 2)。之后,我将更新这些代码用于以下查询的表:
UPDATE table_codes SET used='1', mail_at=NOW(), user='1' WHERE (code='1' OR code='2') AND used='0';
我的问题是如何防止另一个用户获得与第一个用户相同的1或2码?这两个代码只能分配给1个用户。
用户可以获得2张活动门票。这两个代码将以条形码形式通过邮件发送,以便在活动进行时进行扫描。
答案 0 :(得分:0)
UPDATE table_codes
SET used = 1
, mail_at = NOW()
, user = 1
WHERE used = 0
ORDER
BY RAND()
LIMIT 2;