How to get exact value of a field from database? I want to get value of a field, but I need the value that is saved in database, not the value that may be changed by hook_node_load. Is there a way to do this?

If there is no function for this purpose, which query should I use to get the field value?
I'm not sure there's an API function to get this directly; the field functions (like  field_get_items()) seem to rely on a loaded entity object, which in the case of a node would have gone through the whole loading process.

If you want to get the value directly you'll find the data in the field_data_field_* tables. A query like the following would get the data for a node of type 'article', assuming a text field called 'field_my_field' with a column name of 'value'. It also assumes the field is not multiple; if it is you'll need to remove the last line of the query and loop through $val instead:

$val = db_select('field_data_field_my_field', 'f')
  -&gt;fields('f', array('field_my_field_value'))
  -&gt;condition('entity_type', 'node')
  -&gt;condition('bundle', 'article')
  -&gt;condition('entity_id', $node-&gt;nid)
  -&gt;execute()
  -&gt;fetchField();


If you've got node revisions turned on for the content type in question you'll probably need to alter this to query the field_revision_field_my_field table instead, and use the node revision id (vid) instead.