首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL查询用于搜索所有字段?

问MYSQL查询用于搜索所有字段?
EN

Stack Overflow用户
提问于 2010-09-26 21:08:12
回答 7查看 55.1K关注 0票数 10

听起来很愚蠢,但有没有办法做到这一点:

代码语言:javascript
复制
select row_id from mytable where * like '%searched_text%';

这里我指的是表中的“所有字段”,而不是我逐个指定它们……

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-09-26 21:59:17

只有一个查询是不可能的。

然而,当你这样做的时候:

代码语言:javascript
复制
DESCRIBE table_name;

您将获得字段名称,您可以从中生成查询。

Search in all fields from every table of a MySQL database可能会很有用。

票数 7
EN

Stack Overflow用户

发布于 2013-02-20 21:37:24

这是一个结合了PHP的解决方案,可以搜索特定于的表中的所有字段。

代码语言:javascript
复制
include("db_con.php");
//search all fields
$searchphrase = "banan";
$table = "apa303";
$sql_search = "select * from ".$table." where ";
$sql_search_fields = Array();
$sql = "SHOW COLUMNS FROM ".$table;
$rs = mysql_query($sql);
    while($r = mysql_fetch_array($rs)){
        $colum = $r[0];
        $sql_search_fields[] = $colum." like('%".$searchphrase."%')";
    }

$sql_search .= implode(" OR ", $sql_search_fields);
$rs2 = mysql_query($sql_search);
$out = mysql_num_rows($rs2)."\n";
echo "Number of search hits in $table " . $out;
票数 4
EN

Stack Overflow用户

发布于 2010-09-26 21:13:37

是的,它叫做Full Text Search。

您可以使用MySQL内置的全文搜索,也可以使用单独的产品进行文本索引,如Apache's Lucene (我的个人最爱)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3797906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档