0
我有一个mySQL命令的问题似乎没有正确工作。我正在构建一个简单的PHP搜索功能,并且需要它来检查两列(同一个表),如果任一列中的内容都是LIKE,那么我需要它来输出它。它似乎工作,如果我只看它在一列中,但如果我把OR语句,它仍然有效,它似乎不是每次都拉正确的数据。这有点难以解释,所以我会在下面使用一个例子。mySQL给出不正确的结果
PHP和MySQL:
<?php
$in=$_GET['txt'];
$msg="";
if(strlen($in)>0 and strlen($in) <20){
$t=mysql_query("SELECT * FROM es_sermons WHERE searchTags like '$in%' OR serviceName like '$in%'");
while($nt=mysql_fetch_array($t)){
$msg.=$nt[name]."$nt[serviceName]<br>";
}
}
echo $msg
?>
数据库表:
id | serviceName | searchTags
1 | Prayer Positions | Prayer, Fasting, Morning, Pastor, Donnie
2 | Ephesians Part 9 | Ephesians, Pastor, Donnie, Wednesday
3 | Gaining a Clear Vision | Missions, Ministry, Donnie, Pastor, Morning
4 | Downpour Part 7 | downpour, Tim, 3, Evening, Sunday
5 | God is For Me Part 4 | Pastor, Donnie, Morning, God is For Me
实施例的搜索结果:
搜寻: “牧师” - >结果是:2,5 - >应该已经是2,3,5 - >为什么3被遗漏了?
搜索:“Donnie” - >结果分别是:5 - >应该是1,5 - >为什么1被遗漏了?
Searched for:“Wednesday” - > Results Were:NONE - >应该是2 - >为什么2被遗漏了?
结果非常不一致。如果有人能帮助,我将不胜感激。谢谢!
我想知道,他是怎么得到“牧师”的结果2和5,如果问题是缺少%,它应该只给5对不对? –
太好了,谢谢!这工作完美!如果你不介意,你能解释一下前后%的原因/区别吗? –