検索

ホームページ  >  に質問  >  本文

mysql 怎么做到update只更新一行数据?


UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF';

这句话的where部分有两条记录,我只想修改其中一条,该怎么写?

黄舟黄舟2898日前835

全員に返信(2)返信します

  • 高洛峰

    高洛峰2017-04-17 15:27:20

    UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF' 制限 1;

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:27:20

    投稿者がなぜそのような問題を抱えているのかわかりません。データベース内の各データは独立した部分であり、独自の特性を持つべきではないでしょうか?したがって、WHERE sort_code='SAMQLF' を実行すると、一致するすべてのデータが更新されることは明らかです。 1 つの項目だけを更新する場合、どの項目を更新しますか? 機能がある場合は、この機能を追加する必要があります。
    あなたが故意に一致するレコードをランダムに更新したい場合、私の解決策は、sort_code='SAMQLF' 内のレコードの ID をランダムに見つけ、その ID を使用してレコードを更新することです。


    @shuhai の回答を拝見しました。そのような構文があることを教えていただきありがとうございます。 - - |||
    UPDATE LIMIT 1 を使用すると、確かに元の投稿者の問題を解決できます。ただし、最大の ID UPDATE quan.hexiao_code SET sort_code='LKUHFS' WHERE sort_code='SAMQLF' ORDER BY id DESC LIMIT 1

    を持つ一致するもののみを更新するなど、投稿者が明確にすることをお勧めします。

    返事
    0
  • キャンセル返事