1

そのため、データベースに新しい値を入力できるスクリプトを作成しています。データは、その順序によって 1 対 1 で対応します。データは、PHP の配列内に格納されます。したがって、最初の行は私が持っている最初の要素、2 番目の行と 2 番目のデータなどにマップされます。

私はそれをエコーし​​、コマンドプロンプトからSQL ALTERステートメントをパイプすることを計画しています。だから私の質問は、ID を知らなくても、特定の列に新しいデータを追加/変更して行を変更するにはどうすればよいかということです。私が持っているのは、それらが入っている順序での 1 対 1 の対応だけです。

ありがとう、どんな助けでも大歓迎です。

編集:

| id  | key                               | name               | address             

+-----+-----------------------------------+--------------------+----------------
|   1 | quests_buildloggingcamp_type      | Build              |                            
|
|   3 | quests_buildquarry_type           | Build              |                 

したがって、このデータは別のドキュメントにあります。

1. 394 cakeville road.       
2. 2912 mark street.
3. more addresses...

最初のアドレスを最初の行 (id = 1) に追加し、2 番目のアドレスを 2 行目 (id = 3) に追加します。毎回IDをインクリメントできるのですが、行を削除したためID=2が欠落しており、アドレスと同じ数の行があるため、アドレスをスキップせずに正しく追加したいと考えています。

4

1 に答える 1

2

PRIMARY KEYまたはテーブルにある場合UNIQUE KEY、次のようなものが機能します。

UNIQUE KEYたとえば、 on 列がある場合は、次のようにしaます。

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY 
       UPDATE b = 2,
              c = 3;

構文と例については、こちらをご覧ください

編集:すべてのレコードを次の行に更新するために、スクリプト内のループ内でこのクエリを試してください:

外側のループを 1 回:

UPDATE table
SET address = '';

ループ内:

UPDATE table
SET address = 'new address'
WHERE address = ''
ORDER BY id ASC
LIMIT 1;
于 2012-07-26T04:44:05.587 に答える