php - mySQL 查询,并且未考虑

标签 php mysql

我正在研究 PHP/MySQL 中的搜索功能。除了一个问题外,代码工作正常: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 吗?

最佳答案

试试这个;)

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."%' ,其中任何条件匹配,则不会计算下一个条件。

关于php - mySQL 查询,并且未考虑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37205687/

相关文章:

mysql - 存储过程中的动态表名变量

php 将 string 转换为 int 没有给出正确的值

php - 如何添加MySQL连接文件以检查数据库连接?

javascript - 使用数据库中的选项添加新选择

python - 我在为我的项目运行图像时遇到错误。在这里我试图将我的应用程序dockerize

php - bind_param 与 array$i php 数据库

php - 同一id只显示一行

php - 引用不同实体的建模用户帐户

PHP/MySQL 无法更新 double 值

php - 使用 FPDF 打印 Avery 5160 标签