Birincil anahtar farklı olan veritabanındaki satırı kopyala

Veritabanımdaki bir satırı şöyle kopyalayabilirim:

INSERT into `product` (productCode, title, description, price, productGroup)
    SELECT productCode, title, description, price, productGroup
    FROM `product`  
WHERE productCode = $_GET['id']

But I want the productCode to be a different value to the row I have copied from. I want it to be: $productCode

Bunu nasıl yapabilirim?

2
Hayır, çünkü productCode benzersizdir
katma yazar maxisme, kaynak
Otomasyon yok
katma yazar maxisme, kaynak
kodun çalışıyor mu?
katma yazar Alex, kaynak
benzersiz ve otoincrement?
katma yazar Alex, kaynak

6 cevap

gibi yap:

INSERT into `product` (productCode, title, description, price, productGroup)
SELECT "$productCode", title, description, price, productGroup
FROM `product`  
WHERE productCode = ".$_GET['id']
1
katma
Cevabınızı ve ne yaptığını açıklamak daha yararlı olur :)
katma yazar Emil, kaynak
@Emil düşünmek daha iyi :)
katma yazar Pedram marandi, kaynak
@Eima Hayır, gerçekten değil. Bu bir soru-cevap sitesidir, insanlar öğrenmek için buraya gelir. Yanlış sonuca varabilirler veya hiç olmayabilirler. Açıklaman için tartışmasız daha iyidir.
katma yazar Tyrsius, kaynak

Bunu insert 'a koyabilirsiniz:

INSERT into `product` (productCode, title, description, price, productGroup)
    SELECT $productCode, title, description, price, productGroup
    FROM `product`  
WHERE productCode = $_GET['id'];

Bunu uygulama kodundan çağırıyorsanız, bunun için bir parametre ve kimliği kullanmanızı öneririz.

0
katma
'Kod cümlesi' 'de Bilinmeyen sütun' $ productCode 'hatasını alıyorum
katma yazar maxisme, kaynak
bu, ürüne INSERT ürününün gerçek girişidir (productCode, başlık, açıklama, fiyat, productGroup) SELECT 'GH877', başlık, açıklama, fiyat, productGroup ürünün FROM ürünü WHERE productCode = ML292 ve çıktı # 1054 - 'nerede yan tümce' içindeki 'ML292' bilinmeyen sütunu
katma yazar maxisme, kaynak
@Maxximilian. . . Bu kodda where yan tümcesinde $ productCode yok.
katma yazar Gordon Linoff, kaynak

İhtiyacınız olan şeyleri ürün kodu değerini değiştirebilirsiniz

INSERT into `product` (productCode, title, description, price, productGroup)
SELECT 'your product code value' AS productCode, title, description, price, productGroup
FROM `product`  
WHERE productCode = ".$_GET['id']
0
katma
... `product` (productCode, ... 'da tanımlandığı için AS productCode gerçekten gerekli mi?
katma yazar Sean, kaynak
@Sean Hayır gerekli değil, değer için sadece bir takma ad
katma yazar M Khalid Junaid, kaynak

Bu çalışacak:

INSERT into `product` ($productCode, title, description, price, productGroup)
    SELECT productCode, title, description, price, productGroup
    FROM `product`  
WHERE productCode = $_GET['id']
0
katma
INSERT into `product` (productCode, title, description, price, productGroup)
    SELECT $productCode, title, description, price, productGroup
    FROM `product` p
    WHERE p.productCode = $_GET['id'];
0
katma
Bunun afişe ne yaptığını açıklarsanız daha da yardımcı olur :)
katma yazar Emil, kaynak

$ _GET ['id'] dizgede yazılmalıdır. kimliği 'veya "ile sar

'INSERT into product (productCode, title, description, price, productGroup) SELECT'.$productCode.', title, description, price, productGroup FROM product WHERE productCode = "'.$_GET['id'].'"';
0
katma
Cevabınızı açıklamak, başkalarının çoğaltmak yerine öğrenmelerini sağlar.
katma yazar Emil, kaynak