mySQL查询,并没有考虑到

时间:2016-05-13 09:03:07

标签: php mysql

我正在使用PHP / MySQL中的搜索功能。代码工作正常,除了一个问题:AND语句根本不起作用。我在网站的另一个页面上使用相同的内容,我只显示相同的内容,并且它完美地运行。在搜索中使用AND语句时,如何使AND语句生效?

查询如下:

"SELECT l.Id, l.ImageId, l.Subject, l.Level, l.Aim, i.NameImg, i.AltImg 
FROM LessonPlans l 
JOIN Images i 
ON i.ImageId=l.ImageId 
WHERE lower(Subject) LIKE '%".$search."%' OR lower(Level) LIKE '%".$search."%' OR lower(Aim) LIKE '%".$search."%' 
AND l.Language='English' 
ORDER BY l.Id DESC;"

因此,问题在于l.Language='English'根本没有被考虑在内。在搜索时,我也会得到仅在l.Language='Deutsch'l.Language='French'时出现的结果。你不能在搜索查询中使用AND吗?

1 个答案:

答案 0 :(得分:2)

试试这个;)

SELECT l.Id, l.ImageId, l.Subject, l.Level, l.Aim, i.NameImg, i.AltImg 
FROM LessonPlans l 
JOIN Images i 
ON i.ImageId=l.ImageId 
WHERE (lower(Subject) LIKE '%".$search."%' OR lower(Level) LIKE '%".$search."%' OR lower(Aim) LIKE '%".$search."%') 
AND l.Language='English' 
ORDER BY l.Id DESC;

如果您未在()子句中添加where,则表示在lower(Subject) LIKE '%".$search."%'lower(Level) LIKE '%".$search."%'lower(Aim) LIKE '%".$search."%'时,这些条件中的任何一个匹配,下一个条件不会被计算出来。