ある行の特定の列からデータをコピーし、それをすべて同じテーブルの別の行に挿入/更新しようとしています。各行にはすでにID番号(order_noと呼ばれる)があるため、自動インクリメントは必要ありません。
これはかなり簡単だと思いましたが、うまくいきません。私のテーブル名は「orders」で、列は「rn」と「phone」、order_noは「416」と「417」です。rn、および416の電話をrnに挿入し、417の電話列を挿入します。
私もこのクエリを試しましたが、1つのレコードrnだけをコピーしようとしましたが、成功せず、エラーが発生しました:#1248-すべての派生テーブルには独自のエイリアスが必要です
mysql_query("UPDATE orders
SET rn =
( SELECT rn
FROM ( SELECT rn
FROM orders
WHERE order_no = 416
)
WHERE order_no = 417 ");
これを試しましたが成功しませんでしたが、エラー#1136-列数が行1の値数と一致しません
mysql_query
(" INSERT INTO orders (rn, phone)
SELECT rn, phone, 416
from orders
WHERE order_no = 417 ");
アップデート。また、以下のクエリを試してみましたが、フィールド(rn)が1つだけで無効になり、エラー#1093-FROM句で更新するターゲットテーブルの「順序」を指定できません。
mysql_query("UPDATE orders
SET rn = (SELECT rn FROM orders WHERE order_no = '416')
WHERE order_no = '417' ");
どんな助けや援助も大歓迎です。ありがとうございました