mysqli, измените все строки, увеличив их на число, но не на определенное значение - PullRequest
0 голосов
/ 01 мая 2018

"НАБОР ОБНОВЛЕНИЙ points = red_chips WHERE red_chips> current_turn "

Я хочу, чтобы точки были равны нескольким различным цветам микросхемы, но МАКСИМАЛЬНЫЙ любой отдельный цвет микросхемы, который может дать вам очки, должен быть ограничен current_turn, если цвет чипа выше, он должен по умолчанию добавлять только current_turn.

"НАБОР ОБНОВЛЕНИЙ points = red_chips + blue_chips + green_chips + yellow_chips + white_chips "

^ это, но с КАЖДЫМ цветом, индивидуально ограниченным current_turn как максимальная сумма.

Я ищу способ сделать это без необходимости нового запроса для каждого цвета чипа.

1 Ответ

0 голосов
/ 01 мая 2018

Я думаю, что вы ищете LEAST(current_turn, [xyz]_chips). При этом будет использоваться значение чипа, если оно меньше current_turn, но значение current_turn, если значение чипа больше этого значения.

То есть, если вы хотите, чтобы точки были равны сумме всех значений чипа, каждое из которых ограничено значением current_turn, вам нужно что-то вроде этого:

UPDATE score SET points = LEAST(current_turn, red_chips) + LEAST(current_turn, blue_chips) + LEAST(current_turn, green_chips) + LEAST(current_turn, yellow_chips) + LEAST(current_turn, white_chips)

Предполагается, что значения [xyz]_chips содержат фактическую чистую стоимость (с поправкой на значение каждого цвета). В зависимости от того, что current_turn представляет относительно значений / цветов микросхем, вы можете умножить их на относительные значения микросхем. Но если вы ищете количество фишек, не обязательно учитывающее цвет, или если столбец [xyz]_chips содержит скорректированное по цвету значение, то с вами все будет в порядке.

Кроме того, чтобы прояснить немного о моем редактировании, MIN - это агрегатная функция, которая воздействует на столбцы, находя минимальное значение из строк. LEAST is принимает два или более аргумента и возвращает аргумент с наименьшим значением (или NULL, если какой-либо из них NULL), поэтому он действует на значения каждой отдельной строки.

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