0

こんにちは私は更新クエリを使用してテーブルの最初の行を更新しています。ここで条件を使用して行をproduct_idと一致させています。これがクエリです

UPDATE `product_option` SET `input_value`='$color_a',`input_price`='$color_price_a' WHERE `product_id`='$_REQUEST[pid]' and `input_type`='option' LIMIT 0,1

これがテーブルです

ここに画像の説明を入力してください

ここで、where条件はproduct_id = 38の7行と一致します。これを無制限に更新すると、product_id = 38のすべての行が更新されますが、最初の行のみを更新します。これどうやってするの。誰かが以前にこの問題に直面した場合、plsは答えます。

4

3 に答える 3

0

FIRST の意味を定義する必要があります。次に、それと LIMIT 1 で注文するか、where 句の MIN に明示的に一致させることができます。

于 2012-05-02T16:01:38.940 に答える
0

わかりましたので、私は最終的にこの問題を解決しました。Update クエリは、LIMIT 0,1 を設定した場合と同様に、LIMIT OFFSETS では機能しません。LIMITなしで機能するか、LIMITを配置する場合は、LIMIT 2以上で複数の行を変更する必要がある場合にのみ使用できます....

私の場合、使用した特定の行のみを更新したい

<input type="hidden">

この隠しタイプ内で、行の値と更新したい行を呼び出しました。この隠し入力から値を呼び出しました。

"UPDATE `product_option` SET `input_value`='$weight_d',`input_price`='$weight_price_d' WHERE `product_id`='$_REQUEST[pid]' and `input_type`='checkbox' and `input_value`='$_POST[hide_weight_d]' and `input_price`='$_POST[hide_weight_price_d]'"

ここで、このクエリの $_POST[hide_weight_d] は $weight_d と同じ非表示の値であるため、テーブルの値と一致して更新します。

于 2012-05-03T05:15:13.950 に答える