返回精确结果的mySql Max函数

返回精确结果的mySql Max函数,mysql,Mysql,我不知道为什么我没有得到确切的结果 SELECT MAX(MID(order_id,3,20)) As Id FROM `tbl_orders` WHERE `domain_id`=2 +------------+ | id | +------------+ | 10121452 | +------------+ 即使我尝试了相同的函数,但没有中间函数 SELECT MAX(order_id) As Id FROM `tbl_orders` WHERE `domain_i

我不知道为什么我没有得到确切的结果

SELECT MAX(MID(order_id,3,20)) As Id FROM `tbl_orders` WHERE `domain_id`=2 
+------------+
|   id       |
+------------+
|  10121452  |
+------------+
即使我尝试了相同的函数,但没有中间函数

SELECT MAX(order_id) As Id FROM `tbl_orders` WHERE `domain_id`=2 
+------------+
|   id       |
+------------+
| Hy10121452 |
+------------+
任何我的数据库都有最高的顺序

+--------+------------+
| id     |  order_id  |
+--------+------------+
| 1      | Hy10121452 |
| 2      | Hy10121453 |
| 3      | Hy10121454 |
| 4      | Hy10121455 |
| 5      | Hy10121456 |
| 6      | Hy10121457 |
| 7      | Hy10121458 |
| 8      | Hy10121459 |
| 9      | Hy10121460 |
+--------+------------+
我必须增加最大数量以生成新订单号。 我做错什么了吗

将MAXMIDorder\u id 3,20更改为MAXMIDorder\u id 3

语法:from

在哪里


因为您需要最高的id,所以可以使用order by DESC和limit


问题解决了,我只需更正Order_id列,它包含重复条目。重复条目被删除,问题得到了很好的解决。

检查您的数据库->表->列数据不包含与此相同的值abc1 abc2 abc3 xxx1如果您的系列不同,则结果总是错误的

域id来自何处?html选择下拉菜单1064-您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解使用near'As Id FROM tbl_orders WHERE domain_Id的正确语法=2@HamzaYounas问题可能是因为查询中的某些特殊字符选择MAXMIDorder_id,3作为来自tbl_orders的id,其中domain_id=2可能会导致最后一个参数为空。。试着像这个MAXMIDorder_id一样,3,8同样的问题可能b出了点问题我必须弄清楚域id属于哪个表?这可能是问题的原因
 SELECT MID(column_name,start[,length]) AS some_name FROM table_name; 
column_name   Required. The field to extract characters from
start         Required. Specifies the starting position (starts at 1)
length        Optional. The number of characters to return. If omitted, the MID() function returns the rest of the text
SELECT order_id As Id FROM `tbl_orders` WHERE `domain_id`=2 ORDER BY order_id DESC LIMIT 1