2017-03-02 10 views
0

テーブルの内容から単語のセットをランダムに検索する必要があります。 私のテーブル 'file_details'には、ファイルの全内容を含む 'content'という列があります。それは異なるファイルのエントリを持っています。
私はこれらのファイルの内容を通してキーワードを検索しました。mysqlを使用してテーブルの内容から検索キーの最大値を取得する

たとえば、 'となる場合は、Merwan'という表記の 'file_details'の 'content'列から検索するキーがあります。私は、 'content'カラムが検索キーの可能な最大要素で構成されているファイルを返すことを望んでいます。私の検索キー 'は、Merwan'がファイル内に一緒に存在する必要がありません。これらの要素が別々に見つかったとしても、そのファイルを自分のリストに入れてください。この検索は、ファイル内容のキーのすべての要素に基づいて行われる必要があります。

要するに、検索キーの可能な限り最大限のエントリがコンテンツ内のどこにあっても、検索キーの各要素を個別に考慮するファイルの名前が必要です。

私を助けてください。次は私のコードです:

foreach($search_string AS $keySearch => $valSearch){ 
    if(!empty($valSearch)){ 
     $strSearchKey .= " f.content LIKE '%".addslashes($valSearch) ."%' OR"; 
    } 
} 
$strSearchKey = rtrim($strSearchKey, "OR"); 

$query = "SELECT filename, redirectlink 
FROM file_details f 
WHERE (f.content LIKE '%".addslashes($arrParams['search_string']) ."%' OR " . $strSearchKey . ") 
AND f.flagactive = 'A' 
AND (f.endeffdt = '0000-00-00 00:00:00' OR f.endeffdt IS NULL OR f.endeffdt > NOW())"; 
+0

http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-meを参照してください。 -to-be-be-a-very-simple-sql-query – Strawberry

+0

これらの配列はどのように見えますか? $ SEARCH_STRING、$ arrParams – Rick

+0

SEARCH_STRING ::アレイ ( [3] => Merwan 場合は[0] => [1] => [2] =>であろう) –

答えて

0
foreach($search_string AS $keySearch => $valSearch){ 
    if(!empty($valSearch)){ 
     $strSearchKey .= " f.content LIKE '%".addslashes($valSearch) ."%' AND"; 
    } 
} 
$strSearchKey = rtrim($strSearchKey, "AND"); 

$query = "SELECT filename, redirectlink 
FROM file_details f 
WHERE (f.content LIKE '%".addslashes($arrParams['search_string']) ."%' OR " . $strSearchKey . ") 
AND f.flagactive = 'A' 
AND (f.endeffdt = '0000-00-00 00:00:00' OR f.endeffdt IS NULL OR f.endeffdt > NOW())"; 
関連する問題