1

このコードを編集する必要があります:

UPDATE favorites SET category='$newcat',subcategory='$newsubcat',
sitename='$newwebsitename',
url='$newwebsiteurl' WHERE email='$email' ORDER BY favoritesid ASC LIMIT 1

OFFSET追加するには:'OFFSET 1'を最後に追加しますが、UPDATEではコマンドが許可されていないため、を使用しINNER JOINてその部分を追加する必要があります。ただし、次のような単一の変数を削除する場合にのみ、これを行う方法を知っています。

DELETE a FROM favorites a
INNER JOIN
(
  SELECT favoritesid
  FROM favorites
  WHERE email = '$email'
  ORDER BY favoritesid
  LIMIT 1 OFFSET x

 ) b ON a.favoritesid = b.favoritesid

しかし、複数の変数を更新するときは、どこから始めればよいのかさえわかりません。誰かが私を助けることができますか?

4

1 に答える 1

0

おそらくこのようなもの:

UPDATE favorites A INNER JOIN
(
    SELECT favoritesid FROM favorites WHERE email='$email'
    ORDER BY favoritesid LIMIT x
) B USING (favoritesid)
SET
    A.category='$newcat',
    A.subcategory='$newsubcat',
    A.sitename='$newwebsitename',
    A.url='$newwebsiteurl'
;

別の方法は次のとおりです。

UPDATE favorites A
SET
    A.category='$newcat',
    A.subcategory='$newsubcat',
    A.sitename='$newwebsitename',
    A.url='$newwebsiteurl'
WHERE A.favoritesid = 
(
    SELECT MAX(favoritesid) FROM favorites WHERE email='$email'
    ORDER BY favoritesid LIMIT x
);

これらの例では、OFFSET 0を想定しています。OFFSETを念頭に置いている場合は、次のことを試してください。

UPDATE favorites A INNER JOIN
(
    SELECT favoritesid FROM favorites WHERE email='$email'
    ORDER BY favoritesid LIMIT x OFFSET $myoffset
) B USING (favoritesid)
SET
    A.category='$newcat',
    A.subcategory='$newsubcat',
    A.sitename='$newwebsitename',
    A.url='$newwebsiteurl'
;
于 2012-08-02T22:05:05.483 に答える