这是我的选择查询
$raw_results = mysql_query("SELECT *,student_data.student_id,student_data.image,student_data.firstname, student_data.middleI,
student_data.lastname,
student_data.address, student_data.birthday,
section.section_name, department.dept_name, year_graduated.year, course.course_name,
year_graduated.publish_id FROM student_data
INNER JOIN course ON student_data.course_id=course.course_id
INNER JOIN section ON student_data.section_id=section.section_id
INNER JOIN department ON student_data.dept_id=department.dept_id
INNER JOIN year_graduated ON student_data.year_id=year_graduated.year_id WHERE (`firstname` LIKE '%".$query."%') OR (`lastname` LIKE '%".$query."%') OR (`birthday` LIKE '%".$query."%') OR (`section_name` LIKE '%".$query."%') OR (`course_name` LIKE '%".$query."%') OR (`year` LIKE '%".$query."%') OR (`address` LIKE '%".$query."%') AND publish_id=2") ;
我只想显示year_graduated.publish_id等于2的student_data。当我运行上面的代码时,它不会过滤学生的publish_id。
最佳答案
我认为括号有错误。
将开头放在 (firstname
LIKE '%".$query."%') 之前,将结束放在 AND ANDpublish_id=2
就这样
$raw_results = mysql_query("SELECT *,student_data.student_id,student_data.image,student_data.firstname, student_data.middleI,
student_data.lastname,
student_data.address, student_data.birthday,
section.section_name, department.dept_name, year_graduated.year, course.course_name,
year_graduated.publish_id FROM student_data
INNER JOIN course ON student_data.course_id=course.course_id
INNER JOIN section ON student_data.section_id=section.section_id
INNER JOIN department ON student_data.dept_id=department.dept_id
INNER JOIN year_graduated ON student_data.year_id=year_graduated.year_id WHERE ((`firstname` LIKE '%".$query."%') OR (`lastname` LIKE '%".$query."%') OR (`birthday` LIKE '%".$query."%') OR (`section_name` LIKE '%".$query."%') OR (`course_name` LIKE '%".$query."%') OR (`year` LIKE '%".$query."%') OR (`address` LIKE '%".$query."%')) AND publish_id=2")
关于php - php中Mysql内连接搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28935454/