Как добавить инкрементные значения в базу данных MySQL после сортировки записей

0

ID | LastName | FirstName | Приказал

1 | Смит | Джон |

2 | Смит | Ларри |

3 | Джонс | Фред |

4 | Джонсон | Тодд |

Желаемый результат: обновите упорядоченное поле с добавочными значениями в алфавитном порядке.

1 | Смит | Джон | 3

2 | Смит | Ларри | 4

3 | Джонс | Фред | 2

4 | Джонсон | Тодд | 1

$result = mysql_query("SELECT * FROM MyDatabase ORDER by 
LastName,FirstName");

$N=0;

while ($row = mysql_fetch_array( $result )) 
    {
    mysql_query("
    UPDATE MyDatabase
    SET Ordered = $N + 1
    WHERE ...");

   }

Я знаю, что мне нужно WHERE, но я не могу сделать никаких предложений WHERE. Я всегда получаю все одинаковые числа в поле "Заказ". Что сделало бы эту работу задуманной?

  • 0
    Ну, я понял это. Просто нужно было извлечь номер строки и сравнить его с полем ID.
Теги:

2 ответа

0

Ну, я понял это, чтобы заставить его работать. Просто нужно получить строку, а затем сравнить ее с полем ID следующим образом:

$result = mysql_query("SELECT * FROM MyDatabase ORDER by LastName, FirstName");

$N=1;

while ($row = mysql_fetch_array( $result )) 
{
$updateid = $row['ID'];
mysql_query("
UPDATE MyDatabase
SET Ordered = $N
WHERE ID='$updateid'");
$N++;
}
0

Похоже, вам сначала нужно получить общее количество всех строк в результирующем наборе (поскольку вы храните от максимума до минимума, вам нужно знать максимум). Затем просто уменьшите это значение во время цикла UPDATE/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню