Php 有人能给我写这个函数的查询的正确方法吗?
我正在尝试实现搜索功能,用户可以搜索以下任何一项:姓名、年龄、地址、性别、课程和年份Php 有人能给我写这个函数的查询的正确方法吗?,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试实现搜索功能,用户可以搜索以下任何一项:姓名、年龄、地址、性别、课程和年份 SELECT * FROM student WHERE name LIKE '%name%' OR age BETWEEN 'age' AND 'age' OR address LIKE '%address%' OR gender = 'gender' OR course LIKE '%course%' OR YEAR = 'year' Note: each of the search
SELECT *
FROM student
WHERE name LIKE '%name%'
OR age BETWEEN 'age' AND 'age'
OR address LIKE '%address%'
OR gender = 'gender'
OR course LIKE '%course%'
OR YEAR = 'year'
Note: each of the search criteria is in different input field
但每当用户输入1个或多个搜索条件时,我都无法得到正确的结果
我知道什么时候使用或和和,但我就是找不到正确的方法来编写查询
例子是:我有一个学生
id name address age gender course year
2 juan New York 19 male IT 2
4 whitney New Jersey 23 female BA 4
7 manny Canada 20 male Law 2
Note: age is a select input field. example is
15-20
20-25
25-30 and etc.
然而,当我试图搜索例如is course,它是IT
,它会返回所有错误的记录。正确的结果应该只与第一条记录相关。我想这就是你想要的
SELECT * FROM student WHERE name LIKE '%name%' OR (age > 23 AND age < 30)
OR address LIKE '%address%' OR gender = 'gender' OR course LIKE '%course%'
OR YEAR = 'year'
从名为“%name%”或(年龄大于23岁且年龄小于30岁)的学生中选择*
或类似于“%address%”的地址或类似于“%course%”的课程
或年份='YEAR'
这里没有足够的信息。“年龄”与“年龄”有何不同?无论哪种方式,这个话题都必须在以太网上广泛讨论。年龄真的是一个字符串吗?使用TRIM如果你想处理“年龄”和“年龄”,你应该提供示例数据和你想要返回的内容的示例。非工作查询并不总是很好地传达您想要做的事情,这可能会让您感到惊讶。而且,在带有BETHEN子句的字段上使用相同的值是没有意义的。您可以直接在其上使用等于<代码>介于“年龄”和“年龄”之间的年龄
应为年龄=“年龄”
或介于“年龄1”和“年龄2”之间的年龄