尝试编写并执行MySQL查询,以显示所有动作或喜剧电影且成本低于50美元的电影的电影号码,电影片名,电影费用和电影类型。按类型按升序对结果进行排序。
mysql> select mv_no, mv_name, mv_cost, mv_genre from movie
-> where mv_genre = ('Action' or 'Comedy') and mv_cost < 50
-> order by mv_genre;
+-------+----------------------------+---------+----------+
| mv_no | mv_name | mv_cost | mv_genre |
+-------+----------------------------+---------+----------+
| 1245 | Time to Burn | 45.49 | ACTION |
| 1237 | Beatnik Fever | 29.95 | COMEDY |
| 1239 | Where Hope Dies | 25.49 | DRAMA |
| 1234 | The Cesar Family Christmas | 39.95 | FAMILY |
+-------+----------------------------+---------+----------+
4 rows in set, 10 warnings (0.00 sec)
答案 0 :(得分:1)
更改为:
select mv_no, mv_name, mv_cost, mv_genre from movie
where (mv_genre = 'Action' or mv_genre = 'Comedy') and mv_cost < 50
order by mv_genre;
答案 1 :(得分:0)
您是否尝试使用IN
子句:
select mv_no, mv_name, mv_cost, mv_genre
from movie
where mv_genre in ('Action', 'Comedy')
and mv_cost < 50
或者您可以改变使用OR
子句的方式:
select mv_no, mv_name, mv_cost, mv_genre
from movie
where (mv_genre = 'Action' or mv_genre= 'Comedy')
and mv_cost < 50
答案 2 :(得分:0)
错误似乎出现在您的磨损条款中,您可以使用IN
之类的:
WHERE mv_genre IN ('Action', 'Comedy')
您mv_genre = ('Action' or 'Comedy')
的当前条款未计算到if the genre is 'Action' or the genre is 'Comedy'
它实际上只是意味着您要评估'Action' OR 'Comedy'
是否为真,然后将结果与mv_genre
进行比较永远不会回复你的预期。您可以使用IN
轻松地与多个值进行比较,然后使用列表进行比较,或者您可以更加详细并比较如下:
WHERE (mv_genre = 'Action' OR mv_genre = 'Comedy')
无论您喜欢哪种方式,都符合您的需求。
答案 3 :(得分:0)
您的查询应该是
mysql> select mv_no, mv_name, mv_cost, mv_genre from movie
-> where mv_genre IN ('Action', 'Comedy') and mv_cost < 50
-> order by mv_genre;