使用同一列中的where子句进行Mysql搜索

时间:2014-03-19 10:06:40

标签: mysql

你好,我遇到了问题。

我想使用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

但我得到的都是空洞的结果。

你是怎么做到的?

3 个答案:

答案 0 :(得分:1)

问题在于你WHERE子句,

WHERE name = "name1" and name = "name2"将始终返回false。请改用 OR

尝试以下任何一项:

1。选择name1name2anotherid=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