我需要在SQL表中复制一整行,但在复制行的MarketName末尾添加"-copy"。我有以下内容:
$CopyMarket = "INSERT INTO Markets (MarketName, Size)
(SELECT MarketName, Size)
FROM Markets
WHERE MarketID=$CopyID";
如何将"-Copy"附加到MarketName?
ie:名字是"Colorado",我想把它复制并作为"Colorado copy"插入新行
谢谢。
使用MySQL中的CONCAT函数来附加或预置数据。也可以使用标准SQL。
附加
$CopyMarket = "INSERT INTO Markets (MarketName, Size)
(SELECT CONCAT(MarketName, '-Copy'), Size)
FROM Markets
WHERE MarketID=$CopyID"; // Field-Copy
准备
$CopyMarket = "INSERT INTO Markets (MarketName, Size)
(SELECT CONCAT('Copy-', MarketName), Size)
FROM Markets
WHERE MarketID=$CopyID"; // Copy-Field
来自MySQL文档:
返回串联参数后产生的字符串。可能有一个或多个论点。如果所有参数都是非二进制字符串,则结果为非二进制字符串。如果参数包括任何二进制字符串,则结果为二进制字符串。数字参数被转换为其等效的二进制字符串形式;如果您想避免这种情况,可以使用显式类型转换,如本例所示:
SELECT CONCAT(CAST(int_col AS CHAR), char_col);
如果任何参数为NULL,CONCAT()将返回NULL。
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
对于带引号的字符串,可以通过将字符串并排放置来执行串联:
mysql> SELECT 'My' 'S' 'QL';
-> 'MySQL'