Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-在一个查询中插入前计数_Mysql_Insert_Count - Fatal编程技术网

MySQL-在一个查询中插入前计数

MySQL-在一个查询中插入前计数,mysql,insert,count,Mysql,Insert,Count,嘿,大家好,我正在寻找一种方法,只查询我的数据库表一次,以便添加一个项目,并检查最后一个项目计数是多少,以便我可以使用下一个数字 strSQL = "SELECT * FROM productr" 在上面的代码之后,我向记录中添加了一些产品值,如下所示: ID | Product | Price | Description | Qty | DateSold | gcCode ------------------------------------------

嘿,大家好,我正在寻找一种方法,只查询我的数据库表一次,以便添加一个项目,并检查最后一个项目计数是多少,以便我可以使用下一个数字

  strSQL = "SELECT * FROM productr"
在上面的代码之后,我向记录中添加了一些产品值,如下所示:

  ID | Product      | Price  | Description      | Qty | DateSold  | gcCode
  --------------------------------------------------------------------------
  5  | The Name 1   | 5.22   | Description 1    | 2   | 09/15/10  | na
  6  | The Name 2   | 15.55  | Description 2    | 1   | 09/15/10  | 05648755
  7  | The Name 3   | 1.10   | Description 3    | 1   | 09/15/10  | na
  8  | The Name 4   | 0.24   | Description 4    | 21  | 09/15/10  | 658140
我需要计算它看到gcCode“na”的次数,这样我就可以添加一个1,这样它将是唯一的。目前,我不知道如何在不打开此数据库内的另一个数据库的情况下执行此操作,并执行以下操作:

  strSQL2 = "SELECT COUNT(gcCode) as gcCount FROM productr WHERE gcCode <> 'na'
strSQL2=“选择COUNT(gcCode)作为productr中的gcCount,其中gcCode'na'
但正如我上面所说的,我不想为了得到一个计数而打开另一个数据库查询


任何帮助都会很好!谢谢!:o)

没有必要在一个查询中完成所有操作。如果您使用的是存储引擎,您可以将
计数
查询和
插入
命令打包在一个查询中,以确保安全


此外,对于具有未知值或缺少值的字段,您可能应该使用
NULL
而不是
na

不需要在一个查询中完成所有操作。如果您用作存储引擎,您可以将
COUNT
查询和
INSERT
命令打包在一个查询中以保证


此外,对于具有未知或缺少值的字段,您可能应该使用
NULL
而不是
na

它们是两个查询;一个是另一个查询的子集,这意味着在单个查询中获取所需内容将是一种黑客行为,我不推荐:

 SELECT p.*,
        (SELECT COUNT(*)
           FROM PRODUCTR 
          WHERE gccode != 'na') AS gcCount
   FROM PRODUCTR p

这将像以前一样返回所有行。但它将包括一个附加列,对返回的每一行重复
gcCount
值。它可以工作,但它是冗余数据…

它们是两个查询;一个是另一个查询的子集,这意味着在单个查询中获取所需内容将是一种黑客行为,我不推荐:

 SELECT p.*,
        (SELECT COUNT(*)
           FROM PRODUCTR 
          WHERE gccode != 'na') AS gcCount
   FROM PRODUCTR p

这将像以前一样返回所有行。但它将包括一个附加列,对返回的每一行重复
gcCount
值。它可以工作,但它是冗余数据…

您想使什么唯一?gcCode计数,但我需要能够同时添加一条新记录您想添加什么ake unique?gcCode计数,但我需要能够同时添加新记录