gpt4 book ai didi

mysql - SELECT(MAX) 不会超过 10 - 带有 phpmyadmin 的 mysql

转载 作者:行者123 更新时间:2023-11-30 23:50:02 32 4
gpt4 key购买 nike

我正在创建一个 PHP 脚本,以根据使用 session 数组 $_SESSION['cart'] 存储在关联数组中的购物车将行插入到名为订单的数据库中。数据库看起来像这样:

orders
----------+--------------+-------------+-------------+-------------+
Id | Username | Item1Id | Item2Id | Item3Id |
----------+--------------+-------------+-------------+-------------+
1 | a@aa.com | 8000001 | 8000002 | 800003 |
----------+--------------+-------------+-------------+-------------+
5 | a@aa.com | 7000001 | 6000002 | 700003 |
----------+--------------+-------------+-------------+-------------+
7 | b@bb.com | 8000001 | 8000002 | NULL |
----------+--------------+-------------+-------------+-------------+
10 | a@aa.com | 3000001 | 1000002 | 800009 |
----------+--------------+-------------+-------------+-------------+

Id 列类型是 CHAR(20),因为我稍后可能会选择使用字母。

作为插入行的一部分,我需要为订单行分配一个 Id(主键),该 Id 将设置为比当前找到的最高 Id 编号高 1。

整个脚本完美运行;查询在表中找到最高的 Id,我将其递增 1 并将其分配给一个变量以用作插入查询的一部分。唯一的问题是“SELECT MAX(Id) FROM orders”似乎找不到大于 9 的值。是否有条件阻止 SELECT MAX(Id) 识别两位数的任何值?

我把它写成这样:

$highestID = mysqli_query($conn, "SELECT MAX(Id) FROM orders");

$orderID = $highestID +1;

除了 ID 号 1 和 2,我已经清空了数据库。运行 PHP 脚本会插入 ID 号为 3、4、5 的新行,但当它达到 10 时,脚本无法执行,因为它会产生错误“10”的重复主键(来自 $orderID 的值)。即使在 ID 为“25”的数据库中手动输入一行时,$orderID 在我回显其结果时仍然只返回“10”。

我没有对可以输入的行数或类似内容设置任何具体限制。

最佳答案

Idchar(20) 所以 order by Id 使用字符串排序。您可以使用 castconvert 函数对数字进行排序。

喜欢:从订单中选择 max(cast(Id as unsigned))

关于mysql - SELECT(MAX) 不会超过 10 - 带有 phpmyadmin 的 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16391494/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com