你好,我遇到了问题。
我想使用where子句在name列中搜索值。示例表是存储值的。
table1
--------------------------
id | name | anotherid
--------------------------
1 | name1 | 1
2 | name2 | 1
2 | name2 | 2
我有文本框,我可以更改它们出现的数量。例如,我有两个文本框。文本框1上的值是' name1'第二个是' name2'
我的查询必须在table1中找到这两个值,并且当找到它们时,它们的anotherid列也必须相同。
从第一张桌子开始,我想要的就是:
table1
--------------------------
id | name | anotherid
--------------------------
1 | name1 | 1
2 | name2 | 1
然而,当出现这种情况时,我仍然有两个具有相同值的文本框:
table1
--------------------------
id | name | anotherid
--------------------------
1 | name1 | 1
2 | name2 | 1
2 | name2 | 2
3 | name3 | 1
结果必须为空。
现在回到第一张桌子。我用过这段代码。
SELECT * FROM `table1` WHERE name = "name1" and name = "name2"
and
SELECT * FROM `table1` WHERE name = "name1" and name = "name2" group by anotherid
但我得到的都是空洞的结果。
你是怎么做到的?
答案 0 :(得分:1)
问题在于你WHERE
子句,
WHERE name = "name1" and name = "name2"
将始终返回false。请改用 OR 。
尝试以下任何一项:
1。选择name1
,name2
和anotherid=1
SELECT *
FROM table1
WHERE (name="name1" OR name="name2")
AND anotherid=1
结果将是:
id name anotherid
1 name1 1
2 name2 1
2。按anotherid
分组:
SELECT * FROM table1
GROUP BY anotherid
结果:
ID NAME ANOTHERID
1 name1 1
2 name2 2
3。按name
分组:
SELECT * FROM table1
GROUP BY name
结果:
ID NAME ANOTHERID
1 name1 1
2 name2 1
答案 1 :(得分:0)
SELECT * FROM `table1` WHERE name = "name1" OR name = "name2" group by anotherid
应该这样做。
答案 2 :(得分:0)
试试这个
SELECT * FROM `table1` group by name