在MySQL数据库的每个表中搜索所有字段

时间:2009-03-12 16:57:13

标签: mysql

我想在MySQL数据库的所有表中搜索给定字符串的所有字段,可能使用以下语法:

SELECT * FROM * WHERE * LIKE '%stuff%'

有可能做这样的事吗?

29 个答案:

答案 0 :(得分:422)

您可以执行SQLDump数据库(及其数据),然后搜索该文件。

答案 1 :(得分:190)

如果您安装了phpMyAdmin,请使用其“搜索”功能。

  • 选择您的数据库
  • 确保您选择了数据库(即不是表格,否则您将获得完全不同的搜索对话框)
  • 点击“搜索”标签
  • 选择您想要的搜索字词
  • 选择要搜索的表格

我在多达250个表/ 10GB数据库(在快速服务器上)上使用它,响应时间非常惊人。

答案 2 :(得分:79)

您可以查看information_schema架构。它包含表中所有表和所有字段的列表。然后,您可以使用从此表中获取的信息运行查询。

所涉及的表格是SCHEMATA,TABLES和COLUMNS。有外键,您可以准确地建立在模式中创建表的方式。

答案 3 :(得分:42)

function searchAllDB($search){
    global $mysqli;

    $out = "";

    $sql = "show tables";
    $rs = $mysqli->query($sql);
    if($rs->num_rows > 0){
        while($r = $rs->fetch_array()){
            $table = $r[0];
            $out .= $table.";";
            $sql_search = "select * from ".$table." where ";
            $sql_search_fields = Array();
            $sql2 = "SHOW COLUMNS FROM ".$table;
            $rs2 = $mysqli->query($sql2);
            if($rs2->num_rows > 0){
                while($r2 = $rs2->fetch_array()){
                    $colum = $r2[0];
                    $sql_search_fields[] = $colum." like('%".$search."%')";
                }
                $rs2->close();
            }
            $sql_search .= implode(" OR ", $sql_search_fields);
            $rs3 = $mysqli->query($sql_search);
            $out .= $rs3->num_rows."\n";
            if($rs3->num_rows > 0){
                $rs3->close();
            }
        }
        $rs->close();
    }

    return $out;
}

答案 4 :(得分:41)

您可以使用此项目: http://code.google.com/p/anywhereindb

这将搜索所有表中的所有数据。

答案 5 :(得分:11)

如果你像瘟疫那样避免stored procedures,或者由于权限而无法执行mysql_dump,或者遇到其他各种原因。

我建议采用这样的三步法:

1)此查询将一堆查询构建为结果集。

# =================
# VAR/CHAR SEARCH
# =================
# BE ADVISED USE ANY OF THESE WITH CAUTION
# DON'T RUN ON YOUR PRODUCTION SERVER 
# ** USE AN ALTERNATE BACKUP **

SELECT 
    CONCAT('SELECT * FROM ', A.TABLE_SCHEMA, '.', A.TABLE_NAME, 
           ' WHERE ', A.COLUMN_NAME, ' LIKE \'%stuff%\';') 
FROM INFORMATION_SCHEMA.COLUMNS A
WHERE 
            A.TABLE_SCHEMA != 'mysql' 
AND     A.TABLE_SCHEMA != 'innodb' 
AND     A.TABLE_SCHEMA != 'performance_schema' 
AND     A.TABLE_SCHEMA != 'information_schema'
AND     
        (
            A.DATA_TYPE LIKE '%text%'
        OR  
            A.DATA_TYPE LIKE '%char%'
        )
;

# =================
# NUMBER SEARCH
# =================
# BE ADVISED USE WITH CAUTION

SELECT 
    CONCAT('SELECT * FROM ', A.TABLE_SCHEMA, '.', A.TABLE_NAME, 
           ' WHERE ', A.COLUMN_NAME, ' IN (\'%1234567890%\');') 
FROM INFORMATION_SCHEMA.COLUMNS A
WHERE 
            A.TABLE_SCHEMA != 'mysql' 
AND     A.TABLE_SCHEMA != 'innodb' 
AND     A.TABLE_SCHEMA != 'performance_schema' 
AND     A.TABLE_SCHEMA != 'information_schema'
AND     A.DATA_TYPE IN ('bigint','int','smallint','tinyint','decimal','double')
;

# =================
# BLOB SEARCH
# =================
# BE ADVISED THIS IS CAN END HORRIFICALLY IF YOU DONT KNOW WHAT YOU ARE DOING
# YOU SHOULD KNOW IF YOU HAVE FULL TEXT INDEX ON OR NOT
# MISUSE AND YOU COULD CRASH A LARGE SERVER
SELECT 
    CONCAT('SELECT CONVERT(',A.COLUMN_NAME, ' USING utf8) FROM ', A.TABLE_SCHEMA, '.', A.TABLE_NAME, 
           ' WHERE CONVERT(',A.COLUMN_NAME, ' USING utf8) IN (\'%someText%\');') 
FROM INFORMATION_SCHEMA.COLUMNS A
WHERE 
            A.TABLE_SCHEMA != 'mysql' 
AND     A.TABLE_SCHEMA != 'innodb' 
AND     A.TABLE_SCHEMA != 'performance_schema' 
AND     A.TABLE_SCHEMA != 'information_schema'
AND     A.DATA_TYPE LIKE '%blob%'
;

结果应如下所示:

Copy these results into another query window

2)然后,您可以Right Click使用Copy Row (tab separated)

enter image description here

3)将结果粘贴到新的查询窗口并运行到您的心灵内容。

详细信息:除非您选中Show Metadata and Internal Schemas选项,否则我会排除您通常在工作台中看不到的系统架构。

我这样做是为了在需要时提供ANALYZE整个主机或数据库的快捷方式,或运行OPTIMIZE语句以支持性能改进。

我确信你可以采用不同的方式来做这件事,但这对我有用:

-- ========================================== DYNAMICALLY FIND TABLES AND CREATE A LIST OF QUERIES IN THE RESULTS TO ANALYZE THEM
SELECT CONCAT('ANALYZE TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbname';

-- ========================================== DYNAMICALLY FIND TABLES AND CREATE A LIST OF QUERIES IN THE RESULTS TO OPTIMIZE THEM
SELECT CONCAT('OPTIMIZE TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbname';
  

在MySQL版本上测试:5.6.23

     

警告:不要运行如下:

     
      
  1. 您关注导致表锁定(密切关注您的客户端连接)
  2.   
  3. 你不确定自己在做什么。

  4.   
  5. 你正试图激怒你的DBA。 (您的桌面上可能有速度的人。)

  6.   

干杯,杰伊; - ]

答案 6 :(得分:8)

我也使用自己的mysql爬虫来搜索一些wordpress配置,无法在界面和数据库中找到它,并且数据库转储太重且不可读。我必须说现在我不能没有它。

它的工作方式与@Olivier相似,但它管理着异国情调的数据库/表名,并且是LIKE-joker的安全。

<?php

$database = 'database';
$criteria = '*iemblo'; // you can use * and ? as jokers

$dbh = new PDO("mysql:host=127.0.0.1;dbname={$database};charset=utf8", 'root', '');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$tables = $dbh->query("SHOW TABLES");
while (($table = $tables->fetch(PDO::FETCH_NUM)) !== false)
{
    $fields = $dbh->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?");
    $fields->execute(array ($database, $table[0]));

    $ors = array ();
    while (($field = $fields->fetch(PDO::FETCH_NUM)) !== false)
    {
        $ors[] = str_replace("`", "``", $field[0]) . " LIKE REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(:search, '\\\\', '\\\\\\\\'), '%', '\\%'), '_', '\\_'), '*', '%'), '?', '_')";
    }

    $request = 'SELECT * FROM ';
    $request .= str_replace("`", "``", $table[0]);
    $request .= ' WHERE ';
    $request .= implode(' OR ', $ors);
    $rows = $dbh->prepare($request);

    $rows->execute(array ('search' => $criteria));

    $count = $rows->rowCount();
    if ($count == 0)
    {
        continue;
    }

    $str = "Table '{$table[0]}' contains {$count} rows matching '{$criteria}'.";
    echo str_repeat('-', strlen($str)), PHP_EOL;
    echo $str, PHP_EOL;
    echo str_repeat('-', strlen($str)), PHP_EOL;

    $counter = 1;
    while (($row = $rows->fetch(PDO::FETCH_ASSOC)) !== false)
    {
        $col = 0;
        $title = "Row #{$counter}:";
        echo $title;
        foreach ($row as $column => $value)
        {
            echo
            (($col++ > 0) ? str_repeat(' ', strlen($title) + 1) : ' '),
            $column, ': ',
            trim(preg_replace('!\s+!', ' ', str_replace(array ("\r", "\t", "\n"), array ("", "", " "), $value))),
            PHP_EOL;
        }
        echo PHP_EOL;
        $counter++;
    }
}

运行此脚本可能会输出如下内容:

---------------------------------------------------
Table 'customers' contains 1 rows matching '*iemblo'.
---------------------------------------------------
Row #1: email_client: my@email.com
        numero_client_compta: C05135
        nom_client: Tiemblo
        adresse_facturation_1: 151, My Street
        adresse_facturation_2: 
        ville_facturation: Nantes
        code_postal_facturation: 44300
        pays_facturation: FR
        numero_tva_client: 
        zone_geographique: UE
        prenom_client: Alain
        commentaires: 
        nom_societe: 
        email_facturation: my@email.com

答案 7 :(得分:6)

这是检索所有列和表的最简单的查询

SELECT * FROM information_schema.`COLUMNS` C WHERE TABLE_SCHEMA = 'YOUR_DATABASE'

可以通过phpMyAdmin中的“搜索”选项卡搜索所有表或名称中具有特定字符串的表。

有好的查询...... \ ^。^ /

答案 8 :(得分:5)

这是我的解决方案

DROP PROCEDURE IF EXISTS findAll;
CREATE PROCEDURE `findAll`( IN `tableName` VARCHAR( 28 ) , IN `search` TEXT )
BEGIN
       DECLARE finished INT DEFAULT FALSE ;
       DECLARE columnName VARCHAR ( 28 ) ;
       DECLARE stmtFields TEXT ;
       DECLARE columnNames CURSOR FOR
              SELECT DISTINCT `COLUMN_NAME` FROM `information_schema`.`COLUMNS`
              WHERE `TABLE_NAME` = tableName ORDER BY `ORDINAL_POSITION` ;
       DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = TRUE;
       SET stmtFields = '' ;
       OPEN columnNames ;
       readColumns: LOOP
              FETCH columnNames INTO columnName ;
              IF finished THEN
                     LEAVE readColumns ;
              END IF;
              SET stmtFields = CONCAT(
                     stmtFields , IF ( LENGTH( stmtFields ) > 0 , ' OR' , ''  ) ,
                     ' `', tableName ,'`.`' , columnName , '` REGEXP "' , search , '"'
              ) ;
       END LOOP;
       SET @stmtQuery := CONCAT ( 'SELECT * FROM `' , tableName , '` WHERE ' , stmtFields ) ;
       PREPARE stmt FROM @stmtQuery ;
       EXECUTE stmt ;
       CLOSE columnNames ;
END;

答案 9 :(得分:5)

Using MySQL Workbench it's easy to select several tables and run a search for text in all those tables of the DB ;-)

答案 10 :(得分:5)

我正在使用HeidiSQL是一个有用且可靠的工具,专为使用流行的MySQL服务器的Web开发人员而设计。

在HeidiSQL中,您可以按shift + ctrl + f,您可以在所有表​​格中找到服务器上的文本。这个选项非常有用。

答案 11 :(得分:4)

虽然这个问题很老,但如果您使用的是mysql workbench 6.3,可以采用以下方法。 (很可能它也适用于其他版本)

右键单击您的架构和“搜索表数据”,输入您的值并点击“开始搜索”。多数民众赞成。

答案 12 :(得分:3)

这是我所知道的简单方法。 在PHPMyAdmin中选择您的数据库,然后转到“搜索”选项卡并写下您要查找的内容以及要在何处搜索。如果要搜索所有表中的单词,请选择所有表。然后“转到”并查看结果。I Want to find the word VCD (backdoor) from my Wordpress DB for deleting

答案 13 :(得分:3)

此解决方案
a)只有MySQL,不需要其他语言,以及
b)返回SQL结果,准备好进行处理!

#Search multiple database tables and/or columns
#Version 0.1 - JK 2014-01
#USAGE: 1. set the search term @search, 2. set the scope by adapting the WHERE clause of the `information_schema`.`columns` query
#NOTE: This is a usage example and might be advanced by setting the scope through a variable, putting it all in a function, and so on...

#define the search term here (using rules for the LIKE command, e.g % as a wildcard)
SET @search = '%needle%';

#settings
SET SESSION group_concat_max_len := @@max_allowed_packet;

#ini variable
SET @sql = NULL;

#query for prepared statement
SELECT
    GROUP_CONCAT("SELECT '",`TABLE_NAME`,"' AS `table`, '",`COLUMN_NAME`,"' AS `column`, `",`COLUMN_NAME`,"` AS `value` FROM `",TABLE_NAME,"` WHERE `",COLUMN_NAME,"` LIKE '",@search,"'" SEPARATOR "\nUNION\n") AS col
INTO @sql
FROM `information_schema`.`columns`
WHERE TABLE_NAME IN
(
    SELECT TABLE_NAME FROM `information_schema`.`columns`
    WHERE
        TABLE_SCHEMA IN ("my_database")
        && TABLE_NAME IN ("my_table1", "my_table2") || TABLE_NAME LIKE "my_prefix_%"
);

#prepare and execute the statement
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

答案 14 :(得分:2)

我将Olivier的PHP答案修改为:

  • 打印出找到字符串的结果
  • 省略没有结果的表格
  • 如果列名与搜索输入匹配,
  • 也会显示输出
  • 显示结果总数

    function searchAllDB($search){
        global $mysqli;
    
        $out = "";
        $total = 0;
        $sql = "SHOW TABLES";
        $rs = $mysqli->query($sql);
        if($rs->num_rows > 0){
            while($r = $rs->fetch_array()){
                $table = $r[0];
                $sql_search = "select * from ".$table." where ";
                $sql_search_fields = Array();
                $sql2 = "SHOW COLUMNS FROM ".$table;
                $rs2 = $mysqli->query($sql2);
                if($rs2->num_rows > 0){
                    while($r2 = $rs2->fetch_array()){
                        $colum = $r2[0];
                        $sql_search_fields[] = $colum." like('%".$search."%')";
                        if(strpos($colum,$search))
                        {
                            echo "FIELD NAME: ".$colum."\n";
                        }
                    }
                    $rs2->close();
                }
                $sql_search .= implode(" OR ", $sql_search_fields);
                $rs3 = $mysqli->query($sql_search);
                if($rs3 && $rs3->num_rows > 0)
                {
                    $out .= $table.": ".$rs3->num_rows."\n";
                    if($rs3->num_rows > 0){
                        $total += $rs3->num_rows;
                        $out.= print_r($rs3->fetch_all(),1);
                        $rs3->close();
                    }
                }
            }
            $out .= "\n\nTotal results:".$total;
            $rs->close();
        }
        return $out;
    }
    

答案 15 :(得分:2)

MySQL Workbench

以下是一些说明。

下载并安装MSQL Workbench。

https://www.mysql.com/products/workbench/

在安装时,可能需要您安装Visual Studio C ++可再发行组件。您可以在这里获得它:

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

x64:vc_redist.x64.exe(用于64位Windows)

打开MySQL Workbench时,必须输入主机名,用户名和密码。

侧面菜单栏上有一个“架构”选项卡,单击“架构”选项卡,然后双击数据库以选择要搜索的数据库。

然后转到菜单“数据库-搜索数据”,然后输入要搜索的文本,然后单击“开始搜索”。

enter image description here

HeidiSql

下载并安装HeidiSql https://www.heidisql.com/download.php

输入您的主机名,用户名和密码。

按Ctrl + Shift + F可以搜索文本。

enter image description here

答案 16 :(得分:2)

倾倒SQL文件对我来说可能是最快最快的。还发现了另一个问题..

答案 17 :(得分:2)

您可以使用

SHOW TABLES;

然后使用

获取这些表中的列(在循环中)
SHOW COLUMNS FROM table;

然后使用该信息创建许多查询,如果需要,您也可以使用UNION。

但这对数据库来说非常沉重。特别是如果您正在进行LIKE搜索。

答案 18 :(得分:1)

我以先前的答案为基础,并做了一些额外的填充,以便能够方便地加入所有输出:

SELECT 
CONCAT('SELECT ''',A.TABLE_NAME, '-' ,A.COLUMN_NAME,''' FROM ', A.TABLE_SCHEMA, '.', A.TABLE_NAME, 
       ' WHERE ', A.COLUMN_NAME, ' LIKE \'%Value%\' UNION')
FROM INFORMATION_SCHEMA.COLUMNS A
WHERE 
        A.TABLE_SCHEMA != 'mysql' 
AND     A.TABLE_SCHEMA != 'innodb' 
AND     A.TABLE_SCHEMA != 'performance_schema' 
AND     A.TABLE_SCHEMA != 'information_schema'
UNION SELECT 'SELECT '''

-- for exact match use: A.COLUMN_NAME, ' LIKE \'Value\' instead

首先运行此命令,然后粘贴并运行结果(不编辑),它将显示所有使用该值的表名和列。

答案 19 :(得分:1)

我得到了这个。您只需要更改变量

$query ="SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`='" . $_SESSION['db'] . "' AND `table_name`='" . $table . "' ";
$stmt = $dbh->prepare($query);
$stmt->execute(); 
$columns = $stmt->fetchAll(PDO::FETCH_ASSOC);       

$query="SELECT name FROM `" . $database . "`.`" . $table . "` WHERE ( ";
foreach ( $columns as $column ) {
    $query .=" CONVERT( `" . $column['column_name'] . "` USING utf8 ) LIKE '%" . $search . "%' OR ";
}
$query = substr($query, 0, -3);
$query .= ")";

echo $query . "<br>";
$stmt=$dbh->prepare($query);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "<pre>";
print_r ($results );
echo "</pre>";

答案 20 :(得分:0)

要在数据库的所有表中搜索字符串,请在 CLI 上运行以下命令。

mysqldump -u UserName --no-create-info --extended-insert=FALSE DBName -p | grep -i "searchingString"

或者,

mysqldump -u UserName --no-create-info --extended-insert=FALSE DBName -p | grep -i "searchingString" > searchingString.sql

答案 21 :(得分:0)

即使不应将以下建议作为最终解决方案,也可以通过执行以下操作来实现目标:

SET SESSION group_concat_max_len = 1000000;
SET @search = 'Text_To_Search';

DROP table IF EXISTS table1;
CREATE TEMPORARY TABLE table1 AS 
(SELECT 
    CONCAT('SELECT \'',TABLE_NAME,'\' as \'table_name\',\'',COLUMN_NAME,'\' as \'column_name\',CONVERT(count(*),char) as \'matches\' FROM `',
    TABLE_NAME,'` where `',COLUMN_NAME,'` like \'%',@search,'%\' UNION ') as 'query'
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'db_name' limit 1000000);

set @query = (SELECT GROUP_CONCAT(t1.`query` SEPARATOR '') as 'final_query' from table1 t1 limit 1);
set @query = (SELECT SUBSTRING(@query, 1, length(@query) - 7));

PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

请记住:

  1. 选项:并非总是需要 group_concat_max_len 限制1000000 ,这取决于您的服务器/ IDE配置。万一我添加了它们。

  2. 执行此操作后,您将获得3列响应:[table_name],[column_name],[matches]

  3. 'matches'列是给定表/列中的出现次数。

  4. 此查询非常快。

免责声明:它将仅对个人使用有用,换句话说,请不要在生产系统中使用它,因为鉴于搜索参数与其他字符串串联在一起,它对SQL Injection攻击很敏感。 如果要创建产品。准备功能,那么您将需要使用LOOP创建存储过程。

答案 22 :(得分:0)

如果23个答案还不够,这里还有2个...根据数据库的结构和内容,您可能会发现它们实际上是一种快速而简单的解决方案。

对于壳层一线的爱好者,这是一个很长的扇形(实际上在两行上使用变量):

cmd='mysql -u Username -pYour_Password -D Your_Database' # <-- Adapt this

$cmd -s -e 'SHOW TABLES' | while read table; do echo "=== $table ==="; $cmd -B -s -e "SELECT * FROM $table" | grep 'Your_Search'; done

或多行使其更具可读性:

$cmd -s -e 'SHOW TABLES' \
| while read table; do
    echo "=== $table ===";
    $cmd -B -s -e "SELECT * FROM $table" \
    | grep 'Your_Search';
  done
  • -s--silent)禁止显示列名标题

  • -B--batch)会转义换行符等特殊字符,因此使用grep

    时会得到完整记录

对于Perl爱好者,这将使您可以使用正则表达式:

# perl -MDBI -le '($db,$u,$p)=@ARGV; $dbh=DBI->connect("dbi:mysql:dbname=$db",$u,$p); foreach $table ($dbh->tables()) {print "$table\n"; foreach $r ($dbh->selectall_array("SELECT * FROM $table")) {$_=join("\t", @$r); print $_ if (/Your_Regex/);}}' Your_Database Username Your_Password

在“真实的” Perl脚本中可能是这样的:

#!/usr/bin/perl

use strict;
use open qw(:std :utf8);

use DBI;

my $db_host  = 'localhost';
my $db       = 'Your_Database';
my $db_user  = 'Username';
my $db_pass  = 'Your_Password';

my $search    = qr/Your_regex_Search/;


# https://metacpan.org/pod/DBD::mysql
my $dbh = DBI->connect( "dbi:mysql:dbname=$db;host=$db_host", $db_user, $db_pass,
                        { mysql_enable_utf8mb4 => 1 }
) or die "Can't connect: $DBI::errstr\n";


foreach my $table ( $dbh->tables() ) {
    my $sth = $dbh->prepare("SELECT * FROM $table")
        or die "Can't prepare: ", $dbh->errstr;

    $sth->execute
        or die "Can't execute: ", $sth->errstr;

    my @results;

    while (my @row = $sth->fetchrow()) {
        local $_ = join("\t", @row);
        if ( /$search/ ) {
            push @results, $_;
        }
    }

    $sth->finish;

    next unless @results;

    print "*** TABLE $table :\n",
          join("\n---------------\n", @results),
          "\n" . "=" x 20 . "\n";
}

$dbh->disconnect;

答案 23 :(得分:0)

我已经使用HeidiSQL做到了。 这并不容易找到,但是通过按Ctrl + Shift + F可以显示“表格工具”对话框。然后选择您要搜索的内容(将整个数据库存储到单个表中)并输入“要查找的文本”值,然后单击“查找”。我发现它出奇的快(不到一分钟就达到了870MiB db)

答案 24 :(得分:0)

我不知道这是否仅在最新版本中,但右键单击Tables窗格中的Navigator选项会弹出一个名为Search Table Data的选项。这将打开一个搜索框,您可以在其中填写搜索字符串并点击搜索。

您需要在左窗格中选择要搜索的表格。但是如果按住shift并一次选择10个表,MySql可以处理它并在几秒钟内返回结果。

对于任何寻求更好选择的人来说! :)

答案 25 :(得分:0)

有一个很好的库可以读取所有表格ridona

$database = new ridona\Database('mysql:dbname=database_name;host=127.0.0.1', 'db_user','db_pass');

foreach ($database->tables()->by_entire() as $row) {

....do

}

答案 26 :(得分:0)

我使用Union来串联查询。不知道这是否是最有效的方式,但它确实有效。

SELECT * FROM table1 WHERE name LIKE '%Bob%' Union
SELCET * FROM table2 WHERE name LIKE '%Bob%';

答案 27 :(得分:-1)

如果您使用phpMyAdmin关注this answer,该网站this reference

答案 28 :(得分:-1)

导出整个数据库并在.sql文件中搜索。