SELECT *
FROM combinazioni
WHERE (
sesso = '3'
OR sesso = 'f'
)
AND (
menopausa = '3'
OR menopausa = '1'
)
AND (
ipert_a = '3'
OR ipert_a = '1'
)
AND (
obesita = '3'
OR obesita = '1'
)
AND (
LOWER( i_alimento ) NOT LIKE '%ricotta%'
OR LOWER( ii_alimento ) NOT LIKE '%ricotta%'
OR LOWER( iii_alimento ) NOT LIKE '%ricotta%'
OR LOWER( iv_alimento ) NOT LIKE '%ricotta%'
OR LOWER( v_alimento ) NOT LIKE '%ricotta%'
)
ORDER BY rilevanza_1 DESC
我不明白这个问题。为什么这个查询不起作用? 我尝试在PHPMyAdmin中执行此代码,但它没有给我我想要的记录。查询不会给出任何错误,但会返回带有“ricotta”的记录。
我希望此查询向我显示不在i_alimento
,ii_alimento
,iii_alimento
,{iv_alimento
,v_alimento
,return this.http.put('/mandators/' + mandator.uuid, {name: mandator.name})
.map(res => {
console.log(res.status);
res.json();
})
.catch((error: any) => {
console.log(error.status);
return Observable.throw(new Error(error.status));
});
中有“ricotta”的记录{1}},200
字段。
答案 0 :(得分:3)
我很确定您需要and
而不是or
。但是,您应该使用in
并简化整个where
子句:
WHERE sesso IN ('3', 'F') AND
menopausa IN ('1', '3') AND
ipert_a IN ('1', '3') AND
obesita IN ('1', '3') AND
(LOWER(i_alimento) NOT LIKE '%ricotta%' AND
LOWER(ii_alimento) NOT LIKE '%ricotta%' AND
LOWER(iii_alimento) NOT LIKE '%ricotta%' AND
LOWER(iv_alimento) NOT LIKE '%ricotta%' AND
LOWER(v_alimento) NOT LIKE '%ricotta%'
)
这会检查五个“alimento”中任何的“ricotta”是否出现。如果您使用or
,那么它只检查其中一个不包含'ricotta'
。
此外,如果您确定自己确实需要OR
,则应该在条件周围加上括号。
答案 1 :(得分:0)
您可以使用此查询
SELECT *
FROM combinazioni
WHERE
sesso = '3' OR sesso = 'f'
AND
menopausa = '3' OR menopausa = '1'
AND
ipert_a = '3' OR ipert_a = '1'
AND
obesita = '3' OR obesita = '1'
AND
LOWER(i_alimento) NOT LIKE '%ricotta%'
OR LOWER(ii_alimento) NOT LIKE '%ricotta%'
OR LOWER(iii_alimento) NOT LIKE '%ricotta%'
OR LOWER(iv_alimento) NOT LIKE '%ricotta%'
OR LOWER(v_alimento) NOT LIKE '%ricotta%'
ORDER BY rilevanza_1 DESC ;
您还可以使用提供完美结果的IN功能。
SELECT *
FROM combinazioni
WHERE
sesso in ('3','f') AND
menopausa in ('3','1') AND
ipert_a in ('3','1') AND
obesita in ('3','1') AND
LOWER(i_alimento) NOT LIKE '%ricotta%'
OR LOWER(ii_alimento) NOT LIKE '%ricotta%'
OR LOWER(iii_alimento) NOT LIKE '%ricotta%'
OR LOWER(iv_alimento) NOT LIKE '%ricotta%'
OR LOWER(v_alimento) NOT LIKE '%ricotta%'
ORDER BY rilevanza_1 DESC ;
希望它对你有用。任何让我知道的问题都会对你有帮助。