Как я могу добавить новый столбец, который подсчитывает количество строк в качестве серийного номера
record of
id fare commission routecode vehicle number productcode date time driver owner name
15 12345 123 4533 1 3344 2011-03-18 00:00:00 yasir saleem
20 a a 3433 1 2333 2011-03-25 00:00:00 yasir saleem
36 11111 11111 3433 1 2333 2011-03-25 16:13:12 yasir saleem
9 1233 123 3433 nk-234 2333 2011-03-24 00:00:00 siddiq aslam
21 1200 120 4533 nk-234 7655 2011-03-24 00:00:00 siddiq aslam
22 1200 133333 0987 nk-234 2333 2011-03-11 00:00:00 siddiq aslam
23 10000 11 4533 nk-234 7655 2011-03-19 00:00:00 siddiq aslam
25 122 12 0987 nk-234 2333 2011-03-11 00:00:00 siddiq aslam
26 1000 100 3344 nk-234 7655 2011-03-11 00:00:00 siddiq aslam
27 1000 100 3344 nk-234 2333 2011-03-10 00:00:00 siddiq aslam
34 100 10 3344 nk-234 2333 2011-03-18 00:00:00 siddiq aslam
35 100 10 3344 nk-234 2333 2011-03-02 00:00:00 siddiq aslam
5 1000 100 1234 wq1233 3344 2011-03-10 22:30:00 waqas sami
6 2222 22 1234 wq1233 3344 2011-03-17 22:30:00 waqas sami
24 a a 4533 PSS-1234 7655 2011-03-02 00:00:00 salman salam
42633 145175
Я хочу добавить еще один столбец перед id, который подсчитывает количество
строки. Он должен начинаться с 1 и увеличиваться на 1 для каждой строки.
Ответы
Ответ 1
Если вы имеете в виду оператор SELECT:
Скажите, что ваш выбор был
select * from tbl
Он становится
select @n := @n + 1 RowNumber, t.*
from (select @n:=0) initvars, tbl t
Примечания:
-
select @n:=0
используется для reset глобальной переменной в 0
-
@n := @n + 1
увеличивает его на 1 для каждой строки, начиная с 1. Этот столбец называется "RowNumber"
Ответ 2
Добавьте новый столбец mySerial
в таблицу myTable
и увеличивайте каждую строку на 1 (начиная с '1'):
ALTER TABLE myTable ADD mySerial int(11) DEFAULT '0' NOT NULL;
SELECT @n:=0;
UPDATE myTable SET mySerial = @n := @n + 1;
Ответ 3
Итак, вы хотите добавить столбец в каждую строку с номером строки в нем? Это невозможно сделать автоматически, но вы можете добавить столбец и обновить его на каждой вставке (UPDATE table SET (rowcount = SELECT COUNT(*) FROM TABLE)
), но мне интересно, почему вы хотите это сделать? Мне кажется, вы хотите что-то изменить, и я думаю, что должно быть лучшее решение, чем добавление столбца строки.
Ответ 4
Я не уверен, полностью ли я понимаю ваш вопрос, но для добавления столбца infront id запускает этот запрос
ALTER TABLE `yourtablename` ADD `yournewfield` VARCHAR( 50 ) NOT NULL BEFORE `id`
Ответ 5
Возможно, вы захотите заглянуть в это сообщение в блоге: http://jimlife.wordpress.com/2008/09/09/displaying-row-number-rownum-in-mysql/
Кажется, есть решение для добавления номера строки в результат запроса, что может решить вашу проблему.