Mysql通过VARCHAR字段插入订单号


Mysql Insert Order Number By VARCHAR Field

我有一个关于按特定订单类型插入行顺序号的问题。

Products表有OrderNumber字段。我想以编程方式按名称向适当的OrderNumber添加新行。如果引用列是整型的,就必须像这样简单

update products set OrderNumber=OrderNumber+1 where Price>555

对于像

这样的varchar字段是否有类似的方法?
update products set OrderNumber=OrderNumber+1 where Name>'bla%'

谢谢

您可以使用STRCMP('text', 'text2')

update products 
set OrderNumber=OrderNumber+1 
where STRCMP(Name, 'bla') = 1;

我误解了你的意思。你能试试这样的东西吗?
SET @rownum:=0;
update 
set OrderNumber=@rownum:=@rownum + 1
from products
order by Name;

您可以简单地运行一个带有序号的更新查询,如下所示

听起来是个糟糕的设计。为什么不简单地使用一个简单的auto_increment字段并按其排序呢?根据定义,每条新记录的ID都比之前的记录高。

你指的是update products set OrderNumber=OrderNumber+1 where Name like 'bla%'