Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Variável do tipo vetor


Diogo de Freitas

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0
Olá pessoal, Queria saber se tem como criar uma variável do tipo vetor no mysql?

Oi, Diogo!

O MySQL não tem o tipo Array(vetor). Você pode simular usando um varchar e procurando com a função substring.

Não sei qual seu objetivo neste tipo de pesquisa, mas desaconselho o uso de array. Não é uma forma inteligente de guardar ou recuperar informações em bancos de dados.

Link para o comentário
Compartilhar em outros sites

  • 0

E porque queria guardar um pequeno conjunto de dados. Não queria criar uma tabela so para isso e por substring eu acho meio gambiarra ^^. Para ser mais especifico queria guardar o número dos ids de alguns produtos.

SET k_item = "refrigerante;pepsi;light";
While I < N DO
SELECT replace(substring(substring_index(kitem, ';', i), length(substring_index(kitem, ';', i-1))+1), ';', '') INTO k_nome;]
Vetor[i] = SELECT id FROM n_item WHERE nome = k_nome;
END WHILE;

Se não existe array, tem um jeito que seja mais eficiente para o que eu quero?. não queria guardas os ids em varchar

Obrigado

Editado por Diogo de Freitas
Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'Diogo de Freitas'

A maneira mais eficiente, apesar de você não querer utilizá-la é guardar em uma tabela.

Eu tenho diveras tabelas de domínios que guardam apenas o id e a descrição ou o nome. Tabelas que mantém de 2 a n registros (muitas não passando de 10 registros).

Um exemplo clássico é a tabela de tipo_estado_civil com os domínos solteiro, casado, divorciado, separado, viuvo, etc.

Outro exemplo é estados_brasileiros, e muitos mais.

Link para o comentário
Compartilhar em outros sites

  • 0
O motivo de estar querendo guardar os valores em variáveis, e por que vou utilizalas somente temporariamente, até quando terminar o procedure. Em tabelas eu acho q gasta muito processamento, não?!!! mas vou tentar aqui.

Use tabela temporária com engine memory. Não ocuparão espaço em disco e você pode dropá-las da memória ao final da execução da procedure.

A sintaxe para criação deste tipo de tabela é:

CREATE TEMPORARY TABLE <nome-da-tabela> (
<campo 1> <definicao de campo 1>,
...
<campo n> <definicao de campo n>,
primary key (<campo x>)
)ENGINE MEMORY;

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...