Jump to content


Photo

Indentificar Número Específico Numa Linha Separada Por Vírgulas


  • Faça o login para participar
20 replies to this topic

#1 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 14:22

Bom vamos supor que eu tenho numa tabela MySQL a seguinte linha:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

Como deveria ser o script que eu deveria executar para indentificar se algum número extremamente específico está presente nessa linha ou não?

Abraços,
bigCheat.

#2 Leonardo Garcia

Leonardo Garcia

    Normal

  • Usuários
  • 110 posts
  • Sexo:Masculino
  • Localidade:Londrina Paraná

Posted 20/01/2011, 14:40

Seja se é isso que vc precisa:


select * from tabela where idCampo IN ( 1,2,3,4,5...)
Eu podia tá matando, roubando ou me prostituindo. Mas só quero um ponto.

#3 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 14:45

Seja se é isso que vc precisa:


select * from tabela where idCampo IN ( 1,2,3,4,5...)


O problema é que eu não tenho o valor exato que está na linha, pois tem que ser algo padrão, então eu tenho apenas um número como por exemplo "1" e tenho que verificar se ele está entre as vírgulas da linha, entende?

#4 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 15:07

Veja aqui: http://forum.wmonlin...ost__p__1006839

#5 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 15:11

Veja aqui: http://forum.wmonlin...ost__p__1006839


Bom eu não entendi muito bem a condição que você explicou no comentário, poderia me explicar mais detalhadamente aqui?

Obrigado. :)

#6 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 15:30

Leia o tópico desde o começo. É o mesmo caso. Ela tinha valores separados por vírgula e precisava selecionar os registros com um valor em particular.

#7 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 16:33

Leia o tópico desde o começo. É o mesmo caso. Ela tinha valores separados por vírgula e precisava selecionar os registros com um valor em particular.


O script no MySQL está dessa forma:
SELECT titulo
FROM {db_prefix}prefixos
WHERE forum = (forum LIKE "{int:forum},%" OR forum LIKE "%,{int:forum},%" OR forum LIKE "%,{int:forum}")
Estou em um desenvolvimento de um MOD para inserir prefixos nos tópicos sem alterar o seu nome original, para a plataforma de forums conhecida como SMF (Simple Machine Forum), então trocamos:
{db_prefix} pelo prefixo utilizado nas databases
{int:forum} pelo id do tópico atual

Eu guardo os prefixos na tabela prefixos e os tópicos em que os prefixos estão na tabela prefixo_topicos estou utilizando o campo "forum" da tabela prefixos para determinar em quais foruns os prefixos estão sendo permitidos e para não precisar ficar criando inúmeros campos para inserir cada forum, resolvi separá-los no campo "forum" por vírgulas como por exemplo:
1,32,2,5
E quero encontrar se o número do forum em que o usuário está para mostrar apenas se o prefixo estiver liberado para ficar ali. Como eu mostrei no começo o script MySQL está desse jeito:
SELECT titulo
FROM {db_prefix}prefixos
WHERE forum = (forum LIKE "{int:forum},%" OR forum LIKE "%,{int:forum},%" OR forum LIKE "%,{int:forum}")
Porém ele só está mostrando um prefixo agora.

Não sei se entenderam bem, mais é isso.

Abraços,
bigCheat.

@update Bom eu coloquei o script assim:
SELECT titulo
FROM {db_prefix}prefixos
WHERE forum LIKE "{int:forum},%" OR forum LIKE "%,{int:forum},%" OR forum LIKE "%,{int:forum}" OR forum LIKE "{int:forum}"
E deu tudo certo, mais ele dá "conflito" sem erros, se adicionarmos 0 em algum lugar na vírgula, por exemplo:
1,0

Ou:
0,2

Tem como corrigir isso?

E gostaria de saber se existe algum script MySQL para adicionar números no final da linha.

Edição feita por: bigcheat, 20/01/2011, 16:35.


#8 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 17:16

Qual o problema com o zero?

Edição feita por: LeoB, 20/01/2011, 17:17.


#9 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 17:27

Qual o problema com o zero?


Ele faz com que os prefixos apareçam em todos os tópicos, é normal?

#10 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 17:49

Não conheço o sistema, mas a princípio não faz sentido. Precisa fuçar mais.

#11 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 18:30

Não conheço o sistema, mas a princípio não faz sentido. Precisa fuçar mais.


Bom até agora não tive mais problemas e acredito que o probleminha do "0" não vá me atrapalhar, qualquer coisa eu dou uma passada aqui. ;)

Mais gostaria de saber, como faço para adicionar um item no final de uma linha no MySQL?

Abraços.

#12 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 19:13

Como assim adicionar um item no final de uma linha?

#13 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 19:40

Como assim adicionar um item no final de uma linha?


Por exemplo suponhamos que eu tenho uma linha na minha tabela como a abaixo:
1,2,5,20,50,60,200

E eu quero adicionar mais um item no caso "500" ao lado do "200" ficando assim:
1,2,5,20,50,60,200,500


#14 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 20/01/2011, 19:43

Pode usar CONCAT.

SELECT CONCAT(campo, ',500')...


#15 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 20/01/2011, 19:46

Pode usar CONCAT.

SELECT CONCAT(campo, ',500')...


Poderia me explicar com mais detalhes a sintaxe do comando?

Procurei no site do MySQL mais lá não encontrei muito bem explicado:
http://dev.mysql.com...function_concat

:/'




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq