簡體   English   中英

MySQL在同一列中搜索多個關鍵字

[英]MySQL search for multiple keywords in same column

我在PHP中的MySQL查詢中遇到一些問題。

我在名為“關鍵字”的列中包含以下孟加拉語單詞,並將它們分配給名為“抒情者”的表中另一列名為“名稱”的列的“গৌরিপ্রসন্নগৌরিপ্রসন্ন”值

সয়না,রয়না,কেমন,তাকে,আমার,তুমি,কৃষ্ণ,রাধে,দিতে,চাই,আরো,কাছে,তোমার,আমার,তুমি,থাকো,কাছে,ডাকো,আমি,পড়েছে

當我搜索諸如“ consecutive,like,তুমি”之類的連續單詞時,會得到正確的答案“গৌরিপ্রসন্নগৌরিপ্রসন্ন”,但是當我搜索諸如“তোমার,তুমি”之類的隨機單詞時,它不會給出任何答案。

$query = "SELECT name FROM `lyricist` WHERE keywords LIKE '%$val%'";

$ val在這里具有“তোমার,আমার,তুমি”或“তোমার,তুমি”這些類型的值。

為什么不隨機處理該項目? 請幫忙。

$query = "SELECT name FROM `lyricist` WHERE keywords LIKE '%$val%'";

將會得到所有匹配的列,這些匹配的列以具有您的值的文本開頭,然后以某些文本結尾。因此,如果您輸入一些隨機單詞並且它們的順序不正確,顯然此查詢將不匹配。

我認為您想要做的是將多個值放入不同的變量val1,val2,...,並在查詢中使用AND

$query = "SELECT name FROM `lyricist` WHERE keywords LIKE '%$val1%' AND keywords LIKE '%$val2%'";

因此,您將必須動態構建查詢,如下所示:

<?php
$val="keyword1,keyword2,keyword3";
$keywords=explode(',',$val);
if(!empty($keywords)){
     $query="SELECT name FROM `lyricist` WHERE keywords LIKE '%$keywords[0]%' ";  
        if(count($keywords)>1){
        for($i=1;$i<count($keywords);$i++){
         $query.="AND keywords LIKE '%$keywords[$i]%' ";
            }
       }        
}
?>

暫無
暫無

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

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