Ajax搜索返回问题

时间:2015-10-16 21:20:06

标签: php mysql ajax

我试图在用户输入课程名称时进行AJAX搜索调用...
到目前为止,我有以下问题:

我的数据库设计如下:

TABLE COURSE (
  Subject VARCHAR,
  Number CHAR(6)
)

MATH 101和BIOL 301B等课程存储为:
主题:数学,编号:101
主题:BIOL,编号:301B

现在问题出在PHP中,我按如下方式查询数据库:
SELECT * FROM COURSE WHERE Subject LIKE :subject AND Number LIKE :number

如果我在SELECT语句中使用AND,那么如果用户还没有输入完整的课程标题,那么他就不会得到任何结果......
示例输入:数学
在这种情况下,我希望所有的MATH课程都能展示,但是因为我使用AND他们赢了......

现在如果我使用OR,那就是另一个问题;示例输入:math 200
这将返回任何编号为200的课程,这是不对的!

您如何建议我解决此问题?

我想到的一个解决方案是使用不同的函数来处理不同的搜索,然后合并结果......

2 个答案:

答案 0 :(得分:1)

连接SubjectNumber并以这种方式应用LIKE

SELECT * FROM `course`
  WHERE CONCAT(`Subject`, ' ', `Number`) LIKE '%math%';

答案 1 :(得分:0)

您可以尝试在查询中连接列SubjectNumber的值,然后在该连接字符串上应用LIKE子句。

像这样:

SELECT * FROM `course` WHERE CONCAT(Subject, ' ', Number) LIKE ('%math%');