包含if的SQL查询


SQL query with if inside

我有2下拉框搜索表单。比如productsrecipe_type。如果用户选择两个下拉框,我的查询工作正常。但是,如果有人决定只搜索产品,查询将不起作用。

这应该怎么做?

查询为:

SELECT 
  receitas.id, 
  receitas.titulo, 
  receitas.img_small, 
  receitas.tempo, 
  receitas.dificuldade, 
  receitas.pessoas, 
  id_tipo.id_tipo, 
  id_tipo.id_receita, 
  tipo.id_t, 
  produtos.id_p, 
  produtos.nome,  
  id_produto.id_receita, 
  id_produto.id_produto 
FROM 
  receitas, id_tipo, tipo, produtos, id_produto 
WHERE 
  tipo.id_t = %s 
AND produtos.id_p = %s 
AND receitas.id = id_tipo.id_receita  
AND id_tipo.id_tipo = tipo.id_t 
AND receitas.id = id_produto.id_receita 
AND id_produto.id_produto = produtos.id_p

有人来帮我吗?

未指定变量时,变量包含什么内容?空吗?空字符串?下面是一个空字符串的例子:

SELECT 
  receitas.id, 
  receitas.titulo, 
  receitas.img_small, 
  receitas.tempo, 
  receitas.dificuldade, 
  receitas.pessoas, 
  id_tipo.id_tipo, 
  id_tipo.id_receita, 
  tipo.id_t, 
  produtos.id_p, 
  produtos.nome,  
  id_produto.id_receita, 
  id_produto.id_produto 
FROM 
  receitas, id_tipo, tipo, produtos, id_produto 
WHERE 
  (tipo.id_t = %s OR %s = '')
AND (produtos.id_p = %s OR %s = '')
AND receitas.id = id_tipo.id_receita  
AND id_tipo.id_tipo = tipo.id_t 
AND receitas.id = id_produto.id_receita 
AND id_produto.id_produto = produtos.id_p