簡體   English   中英

使用mysql和php搜索除日期字段以外的整個表

[英]search entire table except date fields using mysql and php

我有一張大桌子,想一口氣搜索所有字段,但是有些字段是日期,所以我創建的搜索在碰到這些字段時就會失敗。

使用這種類型的搜索時,是否可以排除某些類型的字段?

$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;

或者,也許有人可以提出一種更好的方法來一次性搜索表中的所有字段?

要排除某些類型的字段,您需要為此查詢更改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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM