Mysql 在获取组id为奇数的人的姓名时遇到问题
我必须找到星期五出生的人的名字,他们的名字以Mysql 在获取组id为奇数的人的姓名时遇到问题,mysql,Mysql,我必须找到星期五出生的人的名字,他们的名字以A或S开头,他们的group\u id很奇怪 我编写了以下查询 SELECT * FROM student WHERE (group_id %2 ) = 1 AND student_name LIKE ("S%") OR student_name LIKE("A%") AND DAYOFWEEK(date_of_birth) = 6; 但是出现了一个偶数组id,我不明白为什么?附上条件: student_name
A
或S
开头,他们的group\u id
很奇怪
我编写了以下查询
SELECT * FROM student
WHERE (group_id %2 ) = 1
AND student_name LIKE ("S%") OR student_name LIKE("A%")
AND DAYOFWEEK(date_of_birth) = 6;
但是出现了一个偶数
组id
,我不明白为什么?附上条件:
student_name LIKE ("S%") OR student_name LIKE("A%")
((group_id%2)=1 AND student_name LIKE ("S%"))
OR
(student_name LIKE("A%") AND DAYOFWEEK(date_of_birth) =6)
在括号内,因为或
运算符的值低于和
运算符,所以您的WHERE
子句实际上设置了以下条件:
student_name LIKE ("S%") OR student_name LIKE("A%")
((group_id%2)=1 AND student_name LIKE ("S%"))
OR
(student_name LIKE("A%") AND DAYOFWEEK(date_of_birth) =6)
因此,请改为:
SELECT * FROM student
WHERE (group_id%2)=1
AND (student_name LIKE ("S%") OR student_name LIKE("A%"))
AND DAYOFWEEK(date_of_birth) =6 ;
或
子句需要括号
SELECT * FROM student
WHERE (group_id%2)=1
AND (student_name LIKE ("S%") OR student_name LIKE("A%"))
AND DAYOFWEEK(date_of_birth) =6 ;
如果没有这些,它会搜索有问题的学生
- 奇数组id和名称以
开头A
- 或学生姓名以
开头(其中组id可以是任何内容)S
sql
查询应将条件包含在()
中,以获得条件优先权:
SELECT * FROM student WHERE (group_id%2)=1
AND (student_name LIKE ("S%") OR student_name LIKE("A%"))
AND DAYOFWEEK(date_of_birth) =6 ;
你是说。。和(学生名如(“S%”)或学生名如(“A%”)?