(MYSQLクエリで)私の順序で使用されると呼ばれる列がlist
あり、リスト内には数字があります:(たとえば1から20)
このリストは、ASCによるMYSQLの順序を使用して出力されますlist
-ただし、JqueryドラッグアンドドロップUIリストを使用してバックエンドでリストを更新すると、リストのフロントエンドが更新されることになっています。
私の問題は、リストに値1の行が2つまたは3つある可能性があるため、リストの順序が他の行と競合することがあることです。したがって、順序が更新されるときに、行が+1の場合にのみ、他の行を+1で更新する方法を知りたいです。 >=指定された注文番号
列を一意にすることを目的としていないため、列をプライマリにしたくありませんlist
。これは、複数のカテゴリがあり、各カテゴリですべて1から始まるためです。したがって、一意にすると、異なるカテゴリに複数の1があったため、エラーが発生します。
トリガー関数を使用してPL/SQLを試すことができると言った友人に尋ねましたが、これは私にとって新しい根拠です-私はその言語を完全には理解しておらず、誰かがMYSQLまたはPL/SQLですら。
これは私がこれまでに持っているものです:
<?php
$project = mysql_real_escape_string(stripslashes($_POST['pid']));
$category = mysql_real_escape_string(stripslashes($_POST['cat']));
$order = mysql_real_escape_string(stripslashes($_POST['order']));
// need to do update the moved result (list row) and update all conflicting rows by 1
mysql_query("UPDATE `projects` SET `cat`='$category',`list`='$order' WHERE `id`='$project'")or die(mysql_query());
?>
結論:
一意でない列を更新して、その個々のカテゴリに一意の値を設定しようとしています。そのカテゴリのすべての行を+1で更新する方法がわかりません