我在PHP中遇到MySQL查询中的一些问题。
我在名为“keywords”的列中包含以下孟加拉语单词,并将其分配给名为“lyricist”的表中名为“name”的另一列的“গৌরিপ্রসন্ননার”值
সয়না,রয়না,কেমন,তাকে,আমার,তুমি,কৃষ্ণ,রাধে,দিতে,চাই,আরো,কাছে,তোমার,আমার,তুমি,থাকো,কাছে,ডাকো,আমি,পড়েছে
当我正在寻找像'তোমার,আমার,তুমি'这样的连续词时,我得到了正确答案'পরিপ্রসন্ননার'但是当我在寻找像'তোমার,তুমি'这样的随机词时,它没有给出任何答案。
$query = "SELECT name FROM `lyricist` WHERE keywords LIKE '%$val%'";
这里$ val有'রার,আমার,তুমি'或'তোমার,তুমি'这些类型的价值。
为什么不随机对待物品?请帮助。
答案 0 :(得分:3)
$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]%' ";
}
}
}
?>