你好我试图插入基于前缀'p'
的字符串连接和总行数。
结果应为p1,p2,p3,p4....
我尝试执行以下查询
insert into products(pid) values(concat('p1',count(*)))
gives error: invalid use of group function
pid is varchar(5),
我还尝试将count(*)
替换为select count(*) from products.
我知道我可以在php
中以编程方式执行此操作,首先检索行数然后插入新行。
期待正确的SQL查询。
答案 0 :(得分:0)
尝试以下代码:
insert into products(pid) select concat('p1',count(*))
修改强>
insert into products(pid) select concat('p1',count(*)) from products
答案 1 :(得分:0)
也许你可以为此使用变量?
DECLARE @cnt INT;
SET @cnt = (SELECT count(*) FROM products);
insert into products(pid) values (concat('p',@cnt));
另外,不确定你想要计算什么,所以我认为它是你的产品表,可能不是这样。
修改强>
在PHP中,这就像
(请使用适当的数据库查询和连接方法 - 例如PDO - 我将使用简单的mysql为例)
<?php
$qry = "SELECT count(*) FROM products";
$qry = mysql_query($qry, $db);
while($row = mysql_fetch_row($qry))
{
$secondqry = "INSERT INTO products(pid) VALUES ('p".echo $row[0]."'");
$secondqry = mysql_query($secondqry);
}
?>
答案 2 :(得分:0)
尝试使用此功能 尝试连接就像在sqlserver
中工作的简单字符串一样insert into Products(PID) values select 'P'+convert(nvarchar(50),count(*)) from Products
这将完成工作