我有一个大表,想要一次搜索所有字段,但有些字段是日期,所以我创建的搜索会在遇到这些字段时失败。
使用此类搜索时,有没有办法排除某些类型的字段?
$table = 'accounts';
$condition = 'tracey';
$sql = "SHOW COLUMNS FROM accounts";
$result = mysqli_query($mysqli,$sql);
if (mysqli_num_rows($result) > 0)
{
$i=0;
while ($row = mysqli_fetch_array($result))
{
if($i==0)
{
$q="select * from ".$table." where ".$row[0]." LIKE %".$condition."%";
}
else
{
$q.=" or ".$row[0]."="." LIKE %".$condition."%";
}
$i++;
}
}
$sql = $q;
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
$row = mysqli_fetch_array($result);
$answer = $row['phone_office'];
echo '<br><br>answer = '.$answer;
或许某人可以建议一次性搜索表格中所有字段的更好方法?
答案 0 :(得分:0)
要排除某些类型的字段您需要使用以下字段更改查询SHOW COLUMNS FROM accounts
:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE (table_name=".$table.")AND(NOT(DATA_TYPE IN ('field_type_1','field_type_2',...)));
其中field_type_i
是排除类型的名称(例如'timestamp'
)