Melhorar a sintaxe
É o seguinte preciso fazer uma consulta em uma tabela cujo existe relação de valores em outra.
Mas que os resultados só poderão existir da seguinte forma.
-
Tabela-B (onde a pesquisa é feita) deve está com a mesmo valor de uma coluna na Tabela-A.
-
Ambas tabelas possuem uma coluna de status (que significa ativos) e em ambas tabelas por essa coluna só podem voltar resultados caso sua coluna referente tenha o status 1.
Em resumo são 5 condições para que haja resultado.
Montei a seguinte sintaxe:
SELECT
sectors.s_status,
sectors.s_hash,
sectors.s_title,
sectors.s_link,
pages.p_status,
pages.p_title,
pages.p_link,
pages.p_sector,
pages.p_content_b
FROM
sectors
INNER JOIN
pages
WHERE
sectors.s_hash = pages.p_sector
AND (pages.p_title LIKE '%{$search}%'
OR pages.p_content_b LIKE '%{$search}%')
AND (sectors.s_status = '1'
AND pages.p_status = '1')
ORDER BY
pages.p_title ASC
Está funcional como previsto. Porém acho que ficou mau feita... Teria uma jeito melhor para fazer?
E mais uma coisa....
Como a pesquisa busca tanto por título quanto por conteúdo.
Digamos que eu tenha uma string "teste" como título na coluna "p_title" na tabela "pages" e no mesmo resultado também tenho na coluna a mesma string "teste" em "p_content_b"....
Exemplo:
>
Citar
Título: Teste de expressão
Conteúdo: Fazendo o teste
Logo com minha query terei 2 resultados só para uma página.
Teria como eu filtrar essa situação para que somente o título seja um resultado ignorando o valor da outra coluna? (Obs.: Isso já faço durante o loop de repetição no PHP, mas queria uma forma de fazer na query) "Limitar o resultado não deu certo...."
Discussão (0)
Carregando comentários...