在mysql中插入新行时连接

时间:2014-09-10 10:05:58

标签: php mysql sql

你好我试图插入基于前缀'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查询。

3 个答案:

答案 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 

这将完成工作