Are db_update->condition() and db_update->where() the same?
condition() always involves a field/column name and a provided value (or an array of provided values). where() can contain arbitrary conditions (comparing fields against each other, can contain functions/expressions), it's just a string that is passed through.

condition() example, select everything where created is bigger than timestamp value.

$timestamp = 123465...;
$query-&gt;condition('created', $timestamp, '&gt;');


where() example, select everything where changed is bigger than created.

$query-&gt;where('created &lt; changed');


Everything that can be done with condition() can also be done with where(), but not the other way round. The following is the same as the condition() call.

$query-&gt;where('created &gt; :timestamp', array(':timestamp' =&gt; $timestamp));


Works just fine, but is way more complicated. The basic rule is that condition() should be used whenever possible and if not, use where().