• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ricardocoimbra

Replace com campo vazio

14 mensagens neste tópico

Bem como é que eu poço fazer replace a um campo vazio? é que não estou a conseguir...

select id,preco, replace(preco,'', "100000000") as outra from produtos

Mas por o campo estar vazio ele não me altera! nao sei como fazer!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho que a sintaxe é

SELECT REPLACE(campo, 'valorinicial', 'valornovo') from tabela;

outra coisa que tens mal (não sei se foi ao escreveres aqui ou se tens mesmo assim no código) é a utilização de plicas e aspas ao mesmo tempo dentro dos parentesis... ou usas plicas ou usas aspas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

MAs acontece que eu quero substituir um campo vazio por exemplo por 1500

Logo se fizer assim não dá:

SELECT REPLACE(campo, '', 'valornovo') FROM tabela;

Mas é só pelo campo ser vazio, porque se fosse pra substituir por valorinical por 1 já dava.. Compreendes, soque acontece que o meu valor é vazio :/ logo não sei resolver

acho que a sintaxe é

SELECT REPLACE(campo, 'valorinicial', 'valornovo') from tabela;

outra coisa que tens mal (não sei se foi ao escreveres aqui ou se tens mesmo assim no código) é a utilização de plicas e aspas ao mesmo tempo dentro dos parentesis... ou usas plicas ou usas aspas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

MAs acontece que eu quero substituir um campo vazio por exemplo por 1500

Logo se fizer assim não dá:

SELECT REPLACE(campo, '', '1500') FROM tabela;

Mas é só pelo campo ser vazio, porque se fosse pra substituir por valorinical por 1 já dava.. Compreendes, soque acontece que o meu valor é vazio :/ logo não sei resolver

acho que a sintaxe é

SELECT REPLACE(campo, 'valorinicial', 'valornovo') from tabela;

outra coisa que tens mal (não sei se foi ao escreveres aqui ou se tens mesmo assim no código) é a utilização de plicas e aspas ao mesmo tempo dentro dos parentesis... ou usas plicas ou usas aspas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Postares pela 2ª vez é só spam. Anyway, isto talvez dê:

INSERT INTO tabela (campo) VALUES ('valornovo')

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem eu ja aqui a um tempo estava a tentar isso! Mas depois desesti entretanto! é de mysql que estou a falar!

é assim eu sei que isto não está bem estruturado, mas acontece que eu tenho uma tabela de preços:

Um exemplo:

Tabela ->dados

Coluna preco

1500

800

Vazio

9000

Agora eu queria ordenar por ordem decrescente, mas acontece que o vazio aparece-me logo em cima dai eu querer adicionar uma tabela virtual e dar ao vazio um astronomico para aparecer no fim! Alguem sabe como poderei fazer? Dai querer usar o replace pra dar ao vazio esse valor.

Postares pela 2ª vez é só spam. Anyway, isto talvez dê:

INSERT INTO tabela (campo) VALUES ('valornovo')

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epá, podes contornar isso do vazio a nível do php:

while($r = mysql_fetch_array($resultado)){
if(empty($r['preço'])){
# está vazio
continue;
}
#não está vazio
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se é decrescente, os valores maiores aparecem no inicio e os menores no fim... por isso, não adianta colocares valores astronómicos porque não te resolve o problema...

porque não esconder logo os que têm o preço em branco?

SELECT * FROM dados WHERE preco>0

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax assim funciona :D eu tava era a tentar logo na query resolver logo o problema.

marinheiro obvio que assim não  me iria seleciona os que não tem valor e o meu objectivo não é esses... E adiantavapois ao criar uma tabela virtual com o replace e a colocar um valor astronomico ia me resolver.. Tou a ver que só da maneira que o djthyrax disse.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax  mas assim tambem não dá pk eu:

é assim eu faço a query

$query = "Select * from dados order by preco asc";

while($m = mysql_fetch_array($query)) {

$preco = $m[preco];

// listar tinha de fazer algo do tipo

if(!empty($m['preco'])){ // se preço for diferente vazio escrever preço

echo"$preco";

continue;

}

echo"$preco";

}

Mas isto acontece que eu na query já estou a defenir ordewr by asc logo ele vai me listar logo o vazio primeiro.

Alguma sugestão?

epá, podes contornar isso do vazio a nível do php:

while($r = mysql_fetch_array($resultado)){
if(empty($r['preço'])){
# está vazio
continue;
}
#não está vazio
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa mas então não estou a perceber o que queres...

queres fazer a listagem só dos que têm valor, correcto? os que não têm não aparecem, correcto? então, o select como coloquei acima resolve-te o problema...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

MArinheiro imagina que tens uma lista de preços:

Produtos

500

300

100

Vazio

15800

Agora quero listar por ordem crescente, mas acontece que o valor vazio vai me aparecer logo no inicio da lista, mas eu não quero quero que o vazio apareça no fim! Percebes?

o resultado pretendido seria:

100

300

500

15800

Vazio

Daieu querer todos e não excluir nenhum valor...

desculpa mas então não estou a perceber o que queres...

queres fazer a listagem só dos que têm valor, correcto? os que não têm não aparecem, correcto? então, o select como coloquei acima resolve-te o problema...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho que, então, o mais practico seria fazeres a listagem em duas partes:

1ª valores diferentes de ''

2ª valores iguais a ''

para o utilizador, não haveria divisão nenhuma, só a nivel de programação...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Coloca um valor deafult na tabela caso o campo nao seja preenchido !

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora