php - 在插入查询中选择查询

标签 php mysql sql

我正在尝试创建一个包含选择查询的插入查询。问题是它看起来不起作用,但它们是分开工作的。

选择查询从数字表中选择最大的数字,然后需要向其加 1。 $variables 来自 php.ini

我做错了什么?

INSERT INTO numbers (number, storeID, udid)
VALUES (
    (SELECT number
     FROM numbers
     WHERE storeid = '$var' AND DATE(timestamp) = CURDATE() 
     ORDER BY number DESC LIMIT 1
    ) + 1, $var, $udid)

最佳答案

您可以创建一个变量来首先存储增量值

$results = mysqli_query($con, "Select number FROM numbers where storeid= '$var' AND DATE(timestamp) = CURDATE() Order by number DESC LIMIT 1");
if ($row = mysqli_fetch_array($results))
{
  extract($row);
  $incremented_value = $row['number'] + 1;
}

那么,列数必须相同

INSERT INTO numbers (number, storeID, udid) 
VALUES 
($incremented_value, $var, $udid)

关于php - 在插入查询中选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24693952/

相关文章:

php - PHP之后要学什么? Scala 还是 Clojure?

mysql - SQL Select 必须在 1 行中返回 2 个表中的 2 个不同值

php 不会从数据库返回整个值

sql - 如何通过生成 id SSIS 将表拆分为 Master/Detail?

sql - Oracle SQL 中将两张表合并为一张

php - cakephp 从另一个表中检索数据到 Controller 中

php - ORDER BY 日期排序仅使用天和月mysql

php - 如何将整个站点从 HTTP 重定向到 HTTPS(Drupal 站点中除了 2 个页面之外)?

PHP 抓取;保存为 MySQL Insert 的变量

mysql - 如何仅在 mysql 中获取最小组行?