Обновление столбца в соответствии со значениями другого столбца - PullRequest
0 голосов
/ 16 марта 2012

У меня есть таблица с именем MAINTABLE и столбцами оценка , оценка . Я заполняю оценка из пользовательского ввода, в то время как содержание оценка зависит от значения оценка . В этом

if score >= 70
then grade is 'A'
if score >= 60 AND <70
then grade is 'B'
if score >= 50 AND <60
then grade is 'C'
if score >= 45 AND <50
then grade is 'D'
if score >= 40 AND <45
then grade is 'E'
else grade is 'F'

Пожалуйста, как мне написать заявление об обновлении для этого типа проблемы?

Спасибо за вашу помощь. Я очень ценю это. Спасибо

ОБНОВЛЕНИЕ: Это то, что я пробовал

 $query = mysql_query(UPDATE maintable

    SET grade = CASE

    WHEN score >= 70 THEN 'A'

    WHEN score >= 60 THEN 'B'

    WHEN score >= 50 THEN 'C'

    WHEN score >= 40 THEN 'D'

    WHEN score >= 30 THEN 'E'

    ELSE 'F'

     END") or die (mysql_error());

Ответы [ 3 ]

0 голосов
/ 16 марта 2012

Хорошо, если он все еще не работает с CASE для вас, вы можете попробовать сделать это с WHERE.

UPDATE maintable SET grade = 'A' WHERE score >= 70;
UPDATE maintable SET grade = 'B' WHERE score >= 60 AND score < 70;

... и так далее. Думаю, вы также можете использовать МЕЖДУ (я не работаю с mysql и не могу проверить это здесь).

0 голосов
/ 16 марта 2012

Не пишите заявление об обновлении, следите за тем, чтобы ваша таблица нормализовалась.
Рассчитайте ваше оценочное письмо в выбранное время.Вот как работает база данных.

Выберите свой счет в таблице $, а затем в PHP

$grades = array('A' => 70, 'B' => 60, 'C' => 50, 'D' => 45, 'E' => 40, 'F' => 0);
foreach ($grades as $grade => $value) {
  if ($score >= $value) {
    break;
  }
}

, чтобы получить оценочное письмо в переменной $grade.

0 голосов
/ 16 марта 2012

Вы можете достичь этого, используя операторы case в своем запросе, здесь приведена документация по операторам case:http://dev.mysql.com/doc/refman/5.0/en/case-statement.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...