Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Micilini Roll

[Resolvido] Selecionar campos de uma tabela por letras

Recommended Posts

bem pessoal é o seguinte,tenho uma tabela no banco de dados com os seguintes campos

id

telefone

email

cidade

mensagem

coisas

clientes

 

eu quero um codigo que selecionasse somente os campos de uma tabela que começasse com a letra c,no exemplo acima eu iria selecionar os campos da tabela apartir do SELECT e atras de while iria armazenar dentro de 3 variaveis os campos cidade coisas e clientes,mas tem um porem,o usuario podera criar mais um campo dentro desse registro da tabela usando um ALTER TABLE + ADD COLUMN,vamos supor que ele crie uma campo com o nome de "cinderela",logicamente sera puchado pq começa com a letra c,mais usando o while ele so ira puchar 3 campos e nao o campo recem criado....

 

e eu queria um comando que selecionasse campos de uma tabela por letras,eae pessoal?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

haha tem algum coisa estranha ai...rs

para acessar os metadados do mysql você faz select no information_schema, la tem td os schemas, tabelas, campos e suas propriedas.

 

da uma olhada nesse link, mostra como acessar: http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o que ele quer é listar o resultado que começar por uma determinada letra.

 

Faz assim: se você quer os nomes que iniciem com r por exemplo:

 

select nome from pessoa where nome like 'r%' or nome like 'R%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas assim eu quero os nomes dos campos da tabela que começam com a letra c,e nao o que existe dentro dos campos da tabela.

 

exemplo:

id-1

nome-rafel

cidade-rio de janeiro

cuidados-lavar as maos

cilindradas-12,8%

 

eu quero que puxe somente os nomes dos campos/colunas que começam pela letra c(como cidade,cuidados e cilindradas),e nao as informaçoes que tem dentro dos campos/colunas,como dito antes o usuario poderar criar uma nova coluna na tabela,podendo ser com a letra c ou nao,se for com a letra c sera pego,se nao....

 

é assim

 

select (todos os campos da tabela) from (nome da tabela) where (somente as colunas de começam pela letra c)

 

sendo:

id-

nome-

cidade-

cuidados-

cilindradas-

e somente sera puxado os campos cidade cuidados e cilindradas,caso o usuario crie uma nova coluna apartir de alter +add column com o nome de 'cinderela',o mesmo sera puxado pois começa pela letra C.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja tentou isso, vai trazer td as tabelas dessa database, ai é so filtra os campos de quais tabelas você quer. olha o link q eu passei antes

select * from information_schema.tables where database = 'teste'

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok,este codigo que voce acabou de me enviar irá pegar todos os campos da tabela,e atraves do information_schema_tables vira where que ira pegar o nome do banco de dados,que no seu caso foi TESTE,ate ai tudo bem,agora depois desse select ira vir um while que fara o loop certo?! entao como ficaria:

 

sendo

nome do banco de dados:teste

nome da tabela:test

nome dos campos que ira pegar:TODOS QUE COMEÇAM PELA LETRA ''C''

 

eh mysql?

 

$campos_c = array();
$q = mysql_query("DESCRIBE tabela");
$fields = mysql_fetch_array($q);
$count = count($fields['Field']);
for($i=0;$i<$count;$i++)
{
if($fields['Field'][$i]{0} == 'c' ||$fields['Field'][$i]{0} == 'C')
{
$campos_c [$i] = $fields['Field'][$i];
}
}

echo "<pre>";
print_r($campos_c);
exit();

 

agora o usuario nunca pode mecher no db, so programador e DBA

 

podera criar mais um campo dentro desse registro da tabela usando um ALTER TABLE + ADD

você confundiu aki tb, o usuario nao coloca um campo no registro, e sim coloca um registro na tabela...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok,este codigo que voce acabou de me enviar irá pegar todos os campos da tabela,e atraves do information_schema_tables vira where que ira pegar o nome do banco de dados,que no seu caso foi TESTE,ate ai tudo bem,agora depois desse select ira vir um while que fara o loop certo?! entao como ficaria:

 

sendo

nome do banco de dados:teste

nome da tabela:test

nome dos campos que ira pegar:TODOS QUE COMEÇAM PELA LETRA ''C''

 

show columns from teste.test where field like 'c%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.