听起来很愚蠢,但有没有办法做到这一点:
select row_id from mytable where * like '%searched_text%';这里我指的是表中的“所有字段”,而不是我逐个指定它们……
发布于 2010-09-26 21:59:17
只有一个查询是不可能的。
然而,当你这样做的时候:
DESCRIBE table_name;您将获得字段名称,您可以从中生成查询。
Search in all fields from every table of a MySQL database可能会很有用。
发布于 2013-02-20 21:37:24
这是一个结合了PHP的解决方案,可以搜索特定于的表中的所有字段。
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;发布于 2010-09-26 21:13:37
是的,它叫做Full Text Search。
您可以使用MySQL内置的全文搜索,也可以使用单独的产品进行文本索引,如Apache's Lucene (我的个人最爱)。
https://stackoverflow.com/questions/3797906
复制相似问题