Finding the host node of a paragraph
It might be a bit easier to use the API rather than SQL for this. I'd be tempted to load all nodes, loop through all their fields and check values that way. If you hit a paragraph field, recurse and check its fields too.

This is a very rough example function, but it should get you going:

function entityHasFieldWithAbsUrl(\Drupal\Core\Entity\ContentEntityInterface $entity, array $types) {
  foreach ($entity-&gt;getFields() as $key =&gt; $field) {
    $field_type = $field-&gt;getFieldDefinition()-&gt;getType();
    $field_settings = $field-&gt;getSettings();
    if ($field_type == 'entity_reference_revisions' &amp;&amp; $field_settings['target_type'] == 'paragraph') {
      foreach ($field as $item) {
        if ($item-&gt;entity instanceof \Drupal\paragraphs\ParagraphInterface) {
          if (entityHasFieldWithAbsUrl($item-&gt;entity, $types)) {
            return TRUE;
          }
        }
      }
    }
    elseif (in_array($field_type, $types)) {
      foreach ($field as $item) {
        // Change this to something better...
        if (strpos($item-&gt;value, 'https://www.example.com/') !== FALSE) {
          return TRUE;
        }
      }
    }
  }

  return FALSE;
}


And you'd use it something like this:

$nodes_with_abs_urls = [];
$nodes = \Drupal::entityTypeManager()-&gt;getStorage('node')-&gt;loadMultiple();
$types = ['text', 'text_long', 'text_with_summary', 'string'];
foreach ($nodes as $node) {
  if (entityHasFieldWithAbsUrl($node, $types)) {
    $nodes_with_abs_urls[] = $node-&gt;id();
  }
}


You probably need to tweak the types to suit your installation, but it should work at a basic level.