[support] Problem with db_update containing a CONCAT condition.

Nicolas Poulain nico.poulain at gmail.com
Mon Jun 4 19:14:57 UTC 2012


Hello,

I have an update query i'd like to translate into a more «7» way but I
don't know how to write one of the conditions that contains a CONCAT
statement.

db_query("
 UPDATE {gbb_session}
 SET  co_resp = (SELECT co_resp FROM {gbb_gresp_dafor} WHERE
CONCAT(prenom,' ',nomu) = :formateur)
 WHERE sess_id = :sess_id"
 ", array( ':sess_id' => $form_state['values']['sess_id'],
             ':formateur' => $form_state['values']['formateur']));

Here is what i tried ; it doesn't work ...

 $subquery = db_select('gbb_gresp_dafor', 'r')
   ->fields('r', array('co_resp'))
   ->condition('CONCAT(prenom,\' \',nomu)',
$form_state['values']['formateur'], '=')
   ->execute();

 db_update('gbb_session','s')
  ->fields(array('co_resp' => $subquery))
  ->condition('sess_id',  $form_state['values']['sess_id'],  '=')
  ->execute();

Any help, would be appreciate.

-- 
Nicolas poulain
http://exomatik.net


More information about the support mailing list