首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >左连接中断WHERE子句

问左连接中断WHERE子句
EN

Stack Overflow用户
提问于 2012-04-21 20:15:22
回答 2查看 197关注 0票数 1

我最近被要求从我的数据库中输入更多的信息,我刚刚离开了JOIN来帮助我,它几乎完美地工作(它确实从另一个表中获得了正确的字段),但是我的WHERE子句是无效的,允许用户访问这两个表,而不受where子句的限制。

MySQL不排除任何错误,所以我假设这与我的where子句或连接中发生的某些事情有关。

代码语言:javascript
复制
SELECT * FROM students 
LEFT JOIN courses ON students.appliedforCourse = courses.idNumber 
WHERE 
    students.telephone LIKE '%$var' 
    OR students.email LIKE '%$var' 
    OR students.address like'%$var%' 
    OR (CONCAT(students.firstName,' ',students.lastName) LIKE '%$var%')
    AND addedBy ='$userid'
LIMIT $s,limit
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-21 20:20:18

查询本身是正确的(尽管由于ORs和%%索引将不会被使用而导致效率非常低)。

我建议回显这个查询,您确定$var的计算结果正确吗?尝试直接在mysql中运行查询(例如,通过phpmyadmin或使用控制台)。

票数 5
EN

Stack Overflow用户

发布于 2012-04-21 20:23:16

我怀疑您只是没有设置$var的值。然后条件,例如students.telephone LIKE '%$var‘将变成students.telephone LIKE '%’(对于非空地址总是真的),它将匹配联接的每一条记录,这正是您所得到的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10258802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档