Mysql按VARCHAR字段插入订单号

时间:2012-01-02 15:29:42

标签: php mysql sql

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

产品表包含OrderNumber字段。我想通过名称以编程方式将新行添加到适当的OrderNumber。如果引用列是整数,那么它必须像

一样容易
update products set OrderNumber=OrderNumber+1 where Price>555

varchar字段是否有类似的方式,如

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

谢谢

4 个答案:

答案 0 :(得分:2)

您只需使用here

中的序号运行更新查询即可

答案 1 :(得分:2)

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

答案 2 :(得分:1)

听起来像一个糟糕的设计。为什么不简单地使用简单的auto_increment字段并按顺序排序?通过定义的每个新记录都具有比其任何前任更高的ID。

答案 3 :(得分:1)

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