0

I use Doctrine with a Postgres database and want to update the integer field "voting". It's a procentual value, saved as integer between 0 and 100, based on the two integer fields "voteCountPro" and "voteCount". I have to cast one of the integers to a decimal value. (See: Division ( / ) not giving my answer in postgresql) This doesn't work in DQL and fails with the message:

[Syntax Error] line 0, col 363: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got ':'

UPDATE statement s
SET s.voting = (s.voteCountPro::decimal / s.voteCount) * 100
WHERE s.id = :id

How can I set the value?

JT2809
  • 324
  • 1
  • 5
  • 16

1 Answers1

0

Install https://github.com/oroinc/doctrine-extensions, register the CAST function and write:

UPDATE statement s
SET s.voting = (CAST(s.voteCountPro as decimal) / s.voteCount) * 100
WHERE s.id = :id
JT2809
  • 324
  • 1
  • 5
  • 16