我有查询,看起来像这样:MySQL的选择与WHERE条件基于计数
SELECT * FROM `bas_HCCxmlSettings`
WHERE `waarde3` = 'Oke'
OR `waarde4` = 'Oke'
AND `config` = 'XMLserver'
现在我想添加特殊条件如果waarde2 != 0
计数则条件waarde2 = 'int'
其他waarde2 = 'ext'
这是什么我想:
尝试1:
SELECT * FROM `bas_HCCxmlSettings`
WHERE `waarde3` = 'Oke'
OR `waarde4` = 'Oke'
AND `config` = 'XMLserver'
AND `waarde2`=
(
(
SELECT count(*)
FROM `bas_HCCxmlSettings`
WHERE `config` = 'XMLserver' AND`waarde2`= 'int' AND
(`waarde3` = 'Oke'
OR `waarde4` = 'Oke'
)
) > 0
,'int'
,'ext'
)
个
try2:
if (SELECT count(*) FROM `bas_HCCxmlSettings` WHERE `waarde2`= 'int' AND (`waarde4` = 'Oke' OR `waarde3`= 'Oke')) > 0
THEN
SELECT count(*) FROM `bas_HCCxmlSettings` WHERE `waarde2`= 'int' AND (`waarde4` = 'Oke' OR `waarde3`= 'Oke')
else
SELECT count(*) FROM `bas_HCCxmlSettings` WHERE `waarde2`= 'ext' AND (`waarde4` = 'Oke' OR `waarde3`= 'Oke')
END
我究竟做错了什么?
一些澄清在我的标准查询为主查询
的selecetion标准必须: 1.配置=“XMLserver” 2. Waarde3或waarde4或两者每亩是“欧客”
查询不waard2的标准应该是:
SELECT * FROM `bas_HCCxmlSettings`
WHERE `config` = 'XMLserver'
AND`waarde2`= 'int'
AND (
`waarde3` = 'Oke'
OR
`waarde4` = 'Oke'
)
为了威慑waarde2我选择requerments的价值是:
- 配置= 'XMLserver'
- waarde2 = INT
- Waarde3或waarde4或双方必须是 '奥凯'
计数查询将被:
SELECT count(*) FROM `bas_HCCxmlSettings`
WHERE `config` = 'XMLserver'
AND`waarde2`= 'int'
AND (
`waarde3` = 'Oke'
OR
`waarde4` = 'Oke'
)
如果此选项的计数为0 then waarde = ext 如果此选择的计数较大,则0 waarde = int
我注意到,您要添加的条件waarde2' = 0,但是您会在try1> 0的条件和try2 – 2014-09-19 14:18:16
你是什么意思的第一件事'如果waarde2!= 0'的计数? 'waarde2'是一列。你想计算一次是否有列表'waarde2 ='int''? – 2014-09-19 14:19:17
请注意,您需要使用括号来使您的“OR”以您想要的方式工作。即“A或B和C”被解析为“A或(B和C)”而不是“(A或B)和C” – Bohemian 2014-09-19 14:20:00