Копировать строку в базе данных с использованием первичного ключа

Я могу скопировать строку в моей базе данных следующим образом:

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

Как я могу это сделать?

2
Нет, потому что productCode уникален
добавлено автор maxisme, источник
Нет, не автоинкремент
добавлено автор maxisme, источник
это ваш код работает?
добавлено автор Alex, источник
уникальный и автоинкремент?
добавлено автор Alex, источник

6 ответы

сделайте это так:

INSERT into `product` (productCode, title, description, price, productGroup)
SELECT "$productCode", title, description, price, productGroup
FROM `product`  
WHERE productCode = ".$_GET['id']
1
добавлено
Было бы более полезно объяснить ваш ответ и что он делает :)
добавлено автор Emil, источник
@Emil лучше подумать :)
добавлено автор Pedram marandi, источник
@Eima Нет, это действительно так. Это сайт вопросов и ответов, люди приходят сюда учиться. Они могут прийти к неверному выводу, или вообще ничего. Это, безусловно, лучше для вас, чтобы объяснить.
добавлено автор Tyrsius, источник

Вы можете поместить это в insert :

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

Я бы рекомендовал использовать параметр для этого и id , если вы вызываете это из кода приложения.

0
добавлено
Я получаю сообщение об ошибке Неизвестный столбец 'product product' в 'where clause'
добавлено автор maxisme, источник
это фактический ввод INSERT в продукт (productCode, название, описание, цена, productGroup) SELECT 'GH877', название, описание, цена, productGroup FROM product WHERE productCode = ML292 , а вывод # 1054 - Неизвестный столбец 'ML292' в 'where clause'
добавлено автор maxisme, источник
@Maximilian. , , В $ productCode в where в этом ответе нет $ productCode .
добавлено автор Gordon Linoff, источник

Вы можете изменить значение кода продукта, что вам нужно, чтобы

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
добавлено
AS productCode действительно нужен, так как он определен в ... `product` (productCode, ... ?
добавлено автор Sean, источник
@Sean Нет его не нужно его просто псевдоним для значения
добавлено автор M Khalid Junaid, источник

Это будет работать:

INSERT into `product` ($productCode, title, description, price, productGroup)
    SELECT productCode, title, description, price, productGroup
    FROM `product`  
WHERE productCode = $_GET['id']
0
добавлено
INSERT into `product` (productCode, title, description, price, productGroup)
    SELECT $productCode, title, description, price, productGroup
    FROM `product` p
    WHERE p.productCode = $_GET['id'];
0
добавлено
Было бы еще более полезно, если бы вы объяснили, что это делает с плакатом :)
добавлено автор Emil, источник

$ _GET ['id'] должен быть в строке. wrap id с 'или'

'INSERT into product (productCode, title, description, price, productGroup) SELECT'.$productCode.', title, description, price, productGroup FROM product WHERE productCode = "'.$_GET['id'].'"';
0
добавлено
Объяснение вашего ответа позволяет другим учиться, а не воспроизводить.
добавлено автор Emil, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp