2012-01-02 5 views
3

У меня возник вопрос о вводе номера порядка строк по типу заказа.Номер заказа вставки Mysql По VARCHAR Поле

Таблица продуктов имеет поле OrderNumber. Я хочу программно добавить новую строку в соответствующий OrderNumber по ее имени. Если ссылка на столбец будет целое число это должно быть легко, как, что

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

Есть ли подобный способ для поля VARCHAR как

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

Спасибо

ответ

2

Вы можете использовать STRCMP ('текст', 'text2')

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

Я пропустил вашу точку зрения. Можете ли вы попробовать что-то вроде этого?

SET @rownum:=0; 
update 
set [email protected]:[email protected] + 1 
from products 
order by Name; 
+0

спасибо dude.it в порядке – user305015

1

Похоже, плохой дизайн. Почему бы просто не просто поле auto_increment с простой jane и порядок? Каждый новый рекорд по defnition имеет более высокий идентификатор, чем любой из его предшественников.

1

вы имеете в виду что-то вроде update products set OrderNumber=OrderNumber+1 where Name like 'bla%'

+0

Да. но если добавленное название продукта - это книга, то оно не работает должным образом. Обновляемые продукты устанавливают OrderNumber = OrderNumber + 1 где Name like 'b%'. потому что мяч должен быть раньше, чем книга – user305015

+0

, если я хорошо понял, вам нужно обновить таблицу и установить OrderNumber + 1 во все строки, которые до «bla ..» ?? – themis

+0

есть. i actualy не хотят делать это по циклу для обновления всех строк. но это должно быть, я не понимаю – user305015

2

Вы можете просто запустить запрос на обновление с порядковым номером, как в here

+0

да, интересно – user305015

Смежные вопросы