一尘不染

Mysql插入按VARCHAR字段的订单号

sql

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

产品表具有OrderNumber字段。我想以编程方式通过名称将新行添加到适当的OrderNumber中。如果引用列将是整数,则必须像这样简单

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

varchar字段是否有类似的方式

update products set OrderNumber=OrderNumber+1 where Name>'bla%'

谢谢


阅读 215

收藏
2021-03-08

共1个答案

一尘不染

您可以使用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;
2021-03-08