在mysql中组合AND运算符

时间:2015-05-15 15:27:16

标签: mysql sql

我想通过AND运算符组合条件..

在我的查询中,我希望结合3个编码,当结果出现时,结果就会出现。

我想要实现这个

SELECT * FROM table WHERE 'condition1' AND ('condition2' AND 'condition3');

我试过这个组合,但它不起作用。

这是实际代码

SELECT * FROM planmenu WHERE name LIKE '%$search%' AND type LIKE '%$type%' AND dishcontent LIKE '%$dishcontent%'

,其中 $ search,$ type和$ dishcontent是php变量。然而,当我放置或第二个和它的insteade它完美的工作。但是当我使用AND时却没有!!

2 个答案:

答案 0 :(得分:0)

使用您尝试获取的值将条件更改为要查询的列。

SELECT 
* 
FROM table
WHERE 
condition1='something' AND 
condition2='somethingelse' AND 
condition3='somethingdifferent';

答案 1 :(得分:0)

您的SQL没有任何问题。检查您的数据。

create table planmenu ( 
  name varchar(20),
  type varchar(20),
  dishcontent varchar(20)
);

insert into planmenu values ('a','b','c');

现在,如果你这样做:

SELECT * 
FROM planmenu 
WHERE name LIKE '%z%' 
AND type LIKE '%z%' 
AND dishcontent LIKE '%c%';

您将获得零记录,因为没有匹配所有三个条件的记录。

如果你这样做:

SELECT * 
FROM planmenu 
WHERE name LIKE '%z%' 
AND type LIKE '%z%' 
OR dishcontent LIKE '%c%';

您将获得一条记录,因为OR使得前两个条件或仅第三个条件必须为真。它相当于运行它:

SELECT * 
FROM planmenu 
WHERE (name LIKE '%z%' AND type LIKE '%z%')
OR dishcontent LIKE '%c%';

检查您的数据。你没有任何符合所有三个条件的记录。