0

我有一个表格,用于跟踪用户与其网站的其他各个方面之间的一些关联。

我需要能够获取第一个可用行并更新其中的一个或两个列......标准是该user_id列是否已被使用。

id | tag_id | user_id | product_id

如果一行有一个没有user_id分配的可用标签,我希望能够使用和更新该行以获取最新购买的产品。

1 | 100001 | 29 | 66  
2 | 100002 | 0  | 0 
3 | 100003 | 0  | 0

如您所见,第二行将是第一个符合条件的候选人。

我只是不确定为了实现这一点需要什么 SQL

4

3 回答 3

2

如果我理解正确,您想更新第一个可用的空(不是 NULL,而是空)user_id 行。这个怎么样?

UPDATE users 
SET user_id = 'user_value_here' 
WHERE user_id='' 
LIMIT 1
于 2012-08-22T18:13:47.527 回答
2
UPDATE yourTablename SET user_id = 'your value for userid',
product_id='ur value for productid' WHERE id=(select min(id) where user_id='0');

已经告诉过的替代方法是有效的,但是如果您的表使用 id 进行排序

UPDATE yourTablename SET user_id = 'your value for userid',
product_id='ur value for productid' where user_id='0' LIMIT 1;
于 2012-08-22T18:46:56.163 回答
0

如果您的索引是 sorted ASC,下面的查询应该按顺序找到第一个结果。

小提琴

UPDATE table SET user_id = 1 WHERE user_id IS NULL LIMIT 1

您可以替换IS NULL为空的条件user_id

于 2012-08-22T18:19:46.050 回答