我想通过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时却没有!!
答案 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%';
检查您的数据。你没有任何符合所有三个条件的记录。