我在MySQL中有一个小表如下:
pid pName pPrice
1 TBall 100.00
2 MBall 200.00
3 TJers 250.00
4 MJers 275.00
我希望在单个查询中获得多行:
Select * from <tablename> where pName='Tball' and 'MBall';
(这段代码错了;我想要一个与此类似的正确解决方案。)
查询应该产生以下结果:
pid pName pPrice
1 TBall 100.00
2 MBall 200.00
答案 0 :(得分:4)
问题是:
Q值。 &#34;我做了什么来避免获取所有行?&#34;
一个。您添加了约束WHERE
子句
Q值。 &#34;如何使其 les 限制性?&#34;
一个。使约束限制较少。
Q值。 &#34;你有一些我可以做到的例子吗?&#34;
一个。嗯,是。 where子句有表达式语法。其中
其他有逻辑运算符(AND
,OR
,NOT
),你可以查看
平等(=,IS NULL
)。 SQL的许多方言都有其他运算符
(BETWEEN
,LIKE
),最后所有人都应该拥有IN
运营商。
可以组合所有运算符,并且可以将子表达式括在其中
像你这样的括号将3 * (7 + 5)
与(3 * 7) + 5
区分开来。
您可以在这里使用OR
逻辑运算符:
SELECT * FROM <tablename> WHERE (pName = 'TBall') OR (pName = 'MBall');
或者,您可以使用IN
:
SELECT * FROM <tablename> WHERE pName IN ('TBall','MBall');
或者,您甚至可以将LIKE
用于您的用例:
SELECT * FROM <tablename> WHERE pName LIKE '%Ball';