0

ユーザーと Web サイトの他のさまざまな側面との間の関連付けを追跡するために使用するテーブルがあります。

最初に利用可能な行を取得し、その列の 1 つまたは 2 つを更新できるようにする必要があります。基準は、列が使用されているかどうかuser_idです。

id | tag_id | user_id | product_id

割り当てられていないタグが行にある場合、user_idその行を使用して最新の購入製品に更新できるようにしたいと考えています。

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

ご覧のとおり、2 行目が最初の適格な候補になります。

それを実現するために必要な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 に答える
0

インデックスがソートされている場合、ASC以下のクエリは最初の結果を順番に見つける必要があります。

フィドルを参照してください。

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

IS NULL空の の条件に置き換えることができますuser_id

于 2012-08-22T18:19:46.050 に答える