-
Conteúdo Similar
-
Por Omar~
É 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:
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...."
-
Por Omar~
Estou precisando fazer uma query em uma tabela usando LIKE, mas preciso restringir que somente sejam mostrados os resultados cujo tenha uma das colunas idênticas.
Exemplo de query (que está errada!!!)
SELECT coluna_A, coluna_B, coluna_C FROM tabela WHERE coluna_A LIKE '%ALGUM_VALOR%' OR coluna_B LIKE '%ALGUM_VALOR%' AND coluna_C = 'tenha esse valor' Então preciso pesquisar existência de "algum valor" dentro das colunas A e B da tabela, mas que sejam retornados apenas resultados cujo a coluna C seja apenas um valor, que pode duplicar de registro para registro, mas na mesma tabela possuem outros registros cujo a coluna C não são iguais.
Obs.: Sempre fiz esse processo de filtrar o resultado via PHP, mas queria saber como fazer diretamente na query.
#EDIT:
Sendo mais específico
Digamos registros mais ou menos assim:
SELECT coluna_A, coluna_B, coluna_C FROM tabela WHERE coluna_A LIKE '%João%' OR coluna_B LIKE '%João% AND coluna_C = 'Carpinteiro'
Ou seja mesmo que que haja mais de um registro, somente é para trazer os resultados cujo a coluna C for carpinteiro
-
Por camargo.2018
Tou querendo fazer um sistema de like alguém sabe oque estou errando ?
Pós não tenho muito conhecimento em JavaScript
<script type="text/javascript">
$(".like2").click(function(){
function(){
if($(this).attr("src") == 'img/like-yes.png')
document.getElementsByid('gosto').src = 'img/like-no.png';
else
document.getElementsByid('gosto').src = 'img/like-yes.png';
}
});
</script>
<div class="like" id="<?php echo $post["id"]; ?>">
<img class="like2" src="<?php if($like['like'] == "yes"){echo 'img/like-yes.png';}else{ echo'img/like-no.png'; }?>" id="gosto" style="margin-top:10px;width:20px;height:20px;cursor: pointer;margin-left:20px;"><p style="position: absolute;padding-left: 50px;margin-top: -22px;color:#999;cursor: pointer;">Curtir</p>
</div>
-
Por Alessandro Almeida
Prezados,
Estou precisando somar a coluna QUANTIDADE que são consultadas com um "DISTINCT material".
Segue código até o "DISTINCT material"
... $busca_query = mysql_query("SELECT distinct material FROM material WHERE material LIKE '%$busca%' AND quantidade LIKE '%$busca1%' ORDER BY material ASC")or die(mysql_error());//faz a busca com as palavras enviadas if (empty($busca_query)) { //Se nao achar nada, lança essa mensagem echo "Nenhum registro encontrado."; } // quando existir algo em '$busca_query' ele realizará o script abaixo. while ($dados = mysql_fetch_array($busca_query)) { ?> <tr width="100%"> <td width="82%"><?php echo "$dados[material]<br />";?></td> <td width="10%"><?php echo "$dados[quantidade] <br />";?> ... -
Por Wellington09
Pessoal, estou com duas duvidas, se alguem puder dar uma dica de onde eu posso estar pesquisando elas eu agradeço(link), pois fazendo uma pesquisa no google não achei o que eu estava procurando.
DUVIDA 1
Como eu faço para trazer uma pesquisa com LIKE quando eu tenho a seguinte situação.
coluna na tabela MYSQL = titulo
titulo cadastrado na coluna = BAVETTE COM MOLHO DE FRANGO E PÊRA
SQL utilizado = (titulo LIKE '%minha palavra chave%')
busca de palavra chave = frango
1 pesquisa ok, ACHOU
busca de palavra chave = pera
2 pesquisa ok, ACHOU
busca de palavra chave = frango e pera
3 pesquisa ok, ACHOU
busca de palavra chave = frango pera (perceba que não tem a letra E nesta busca )
4 pesquisa, NÃO ENCONTROU NADA
como eu faço para contornar este tipo de problema ?
DUVIDA 2
Minha outra duvida é em relação a usar uma junção de LIKE na coluna titulo(var char), descrição(TEXT) e categoria (var char) para encontrar um texto que esta sendo pesquisado.
Sei que não é uma boa pratica usar LIKE, inclusive se for em varias colunas e se a base de dados for grande, mas como faço para contornar estas situações ?
Alguém poderia dar uma dica ?
-