Eu tenho três variáveis $color, $size e $category. Cada um deles pode ser um valor específico ou pode se referir a todas as entradas. Desejo buscar todos os produtos que são $color = "red", $size = "Medium" e qualquer categoria OU qualquer cor, qualquer tamanho e $category = " Camisetas". Eu posso fazer isso usando if/elseif ou switch e tratar todos os casos, mas isso significa 12 casos + aquele com qualquer cor, qualquer tamanho e qualquer categoria, então 13 casos no total.
Isso é possível no mySql ??
Exemplo de consulta
SELECT
*
WHERE color = $color AND size = $size AND category = $category
Parece que você deseja manter seu código PHP simples e tornar o código SQL mais complicado, enquanto deveria ser diferente.
Exemplo: digamos que
- o usuário A escolhe: "
color = 'red', size = 'Medium', category = any
"- o usuário B escolhe "
color = any, size = any, category = 'Tshirts'
"As condições podem ser respectivamente tão simples como:
e para
Não acho que seja tão difícil escrever código PHP que produza essas condições quando um usuário seleciona algum "any" , não importa como esse "any" esteja codificado em seu formulário PHP/web.
Mas se você realmente deseja passar isso para o MySQL, você pode fazer algo assim. Passe o "any" como um valor fixo (digamos
'any'
) e use: