how find last updated values inside table field in given database? search results "%2015-07-08%" @ least 1 of words:
its not impossible, not trivial either. don't think there easy way sql alone (i assume use mysql, haven't specified kind of database using).
one way make script uses information_schema tables find relevant tables , columns search through, iterate in php , execute queries search columns , tables.
edit: sake of doing made small example of mean, code uses pdo:
function findall($search_str, $database, $types = ['tinytext','blob','varchar','text','longblob']){ global $pdo; foreach($types &$t){ $t = "'" . $t . "'"; } $types = implode(',',$types); $s = $pdo->prepare(" select table_name, column_name information_schema.columns table_schema = :database , data_type in ($types) "); $s->bindvalue(':database', $database); $s->execute(); $results = []; foreach($s->fetchall(\pdo::fetch_assoc) $column){ $search = $pdo->prepare("select * $database.${column['table_name']} ${column['column_name']} :search_str"); $search->bindvalue(':search_str', $search_str); $search->execute(); $result = $search->fetchall(\pdo::fetch_assoc); if(count($result)) $results[$column['table_name']] = isset($results[$column['table_name']]) ? array_merge( $results[$column['table_name']], $result ) : $result; } return $results; } example of usage:
findall('%foobar%','my_database'); findall('%2015-07-08%','my_database',['date','datetime','timestamp']); //only search date types...
Comments
Post a Comment