我有一个表格,列和数据就像这样
| ID | Prop | Value | String |
| 1 | C | 1 | NULL |
| 1 | Notes | NULL | TestNote |
| 1 | E | 59 | NULL |
| 1 | Notes | NULL | Note2 |
| 2 | C | 1 | NULL |
我尝试做的是在Prop列上同时获取Notes和C行
我已经尝试了
SELECT * FROM table WHERE Prop IN ("C", "Notes")
这是
的输出| ID | Prop | Value | String |
| 1 | C | 1 | NULL |
| 2 | C | 1 | NULL |
它只输出一列。当我使用' OR'
时,这是相同的输出然后我试了
SELECT * FROM table WHERE Prop = "C" AND Prop = "Notes"
但我得到一个空结果,如果我分开选择语句,如
SELECT * FROM table WHERE Prop = "C"
然后在另一个窗口上再做一次
SELECT * FROM table WHERE Prop = "Notes"
它有效,但不是我需要它如何工作。
我希望得到的输出是这样的:
| ID | Prop | Value | String |
| 1 | C | 1 | NULL |
| 1 | Notes | NULL | TestNote |
| 1 | Notes | NULL | Note2 |
| 2 | C | 1 | NULL |
知道如何才能让它发挥作用吗?
答案 0 :(得分:0)
你为什么不使用" OR"介于两者之间?
SELECT * FROM table WHERE Prop = 'C' OR Prop = 'Notes'
答案 1 :(得分:0)
条件Prop = "C" AND Prop = "Notes"
永远不会成立,因此无效。
以下查询已发布应该可以正常使用
SELECT * FROM table WHERE Prop IN ("C", "Notes")
如果它不起作用,则可能是这些值区分大小写的情况。
在您的查询中使用LOWER()
功能,如
SELECT * FROM table WHERE LOWER(Prop) in ('c','notes');
(OR)作为替代用途UNION
SELECT * FROM table WHERE Prop = 'C'
UNION
SELECT * FROM table WHERE Prop = 'Notes'