Newsgroup: it.comp.www.php
Titolo: stringa sql

Salve a tutti,,
questa istruzione in mysql non funziona:
SELECT anacli.npc, cognome1 &  nome1 AS nominativo
FROM anacli;
nel senso che non mi concatena cognome1 e nome1
sbaglio sintassi?
ho provato la funziona concat() ma non mi restituisce
la stringa se manca nome1....
grazie!
ringo

 ha scritto nel messaggio
news:bcp62p$368$1...@newsread.albacom.net...


Questo dovrebbe funzionare
SELECT npc, CONCAT(cognome1, ' ', nome1) AS nominativo FROM anacli;

 ha scritto nel messaggio
news:bGVHa.106026$pR3.2...@news1.tin.it...


 ha scritto nel messaggio
news:O4WHa.100934$lK4.2...@twister1.libero.it...

grazie!

non funziona...
scusa ma il pipe è il tasto a sinistra del tasto "1"?
grazie!
ringo

 ha scritto nel messaggio
news:bcpcrc$5v2$1...@newsread.albacom.net...


mysql> SELECT anacli.npc, cognome1 || nome1 AS nominativo from anacli where
npc = '028764';
+--------+------------+
| npc    | nominativo |
+--------+------------+
| 028764 |          0 |
+--------+------------+
1 row in set (0.45 sec)
mi mette 0...........
mah

 ha scritto nel messaggio
news:bcpe7g$6k8$1...@newsread.albacom.net...


 ha scritto nel messaggio
news:t8XHa.101106$lK4.2...@twister1.libero.it...


 ha scritto nel messaggio
news:bcpg84$86n$1...@newsread.albacom.net...


Scusa, io ho provato su mysql questa query e funziona tranquillamente anche
se ho campi vuoti
la hai provata cosě come l'ho scritta io?
SELECT npc, CONCAT(cognome1, ' ', nome1) AS nominativo FROM anacli;
Io uso in un mio DB SELECT CONCAT(cognome, ' ', nome, ' ', email) AS
contatto FROM utenti;
email al 50% delle volte č vuota ma funziona tutto comunque
Fammi sapere

Se ti leggi il manuale di mySQL vedi che || serve a fare l'OR logico,
ovviamente se in  nessun campo c'è un 1 allora il rislutao è zero,
altrimenti sarebbe 1.

Concat funziona tranquillamente con più di tre campi o altro testo
concatenato, la mia query sul mio db mysql funziona correttamente
CONCAT(str1,str2,...)
Returns the string that results from concatenating the arguments. Returns
NULL if any argument is NULL. May have more than 2 arguments. A numeric
argument is converted to the equivalent string form:
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'

 ha scritto nel messaggio
news:iVXHa.106759$pR3.2...@news1.tin.it...

nun funziona... :-(
io uso la versione  3.23.51 di mysql
allora nel caso in cui entrambi i campi sono pieni funziona:
mysql> SELECT npc, CONCAT(cognome1,' ',nome1) AS nominativo from anacli
where npc = '028764';
+--------+----------------+
| npc    | nominativo     |
+--------+----------------+
| 028764 | ABOUFARAJ AZIZ |
+--------+----------------+
1 row in set (0.45 sec)
se nome1 = null allora non funziona......
mysql> SELECT npc, CONCAT(cognome1,' ',nome1) AS nominativo from anacli
where npc = '000971';
+--------+------------+
| npc    | nominativo |
+--------+------------+
| 000971 | NULL       |
+--------+------------+
1 row in set (0.46 sec)
che versione usi di mysql?

fai cosě
UPDATE anacli SET nome1='' WHERE nome1=NULL
in questo modo il concat ti funziona perchč non hai valori nulli
oppure
SELECT npc, CONCAT(cognome1, ' ',IFNULL( nome1, '')) AS nominativo FROM
anacli;
 Prova

 ha scritto nel messaggio
news:bcpin0$bm1$1...@newsread.albacom.net...


 ha scritto nel messaggio
news:c3YHa.106825$pR3.2...@news1.tin.it...



et voilà!
così funziaaaa
preferisco la seconda soluzione visto che i dati vengono importati nuovi
ogni giorno....
mysql> SELECT npc, CONCAT(cognome1,' ',ifnull(nome1,'')) AS nominativo from
anacli where npc = '000971';
+--------+--------------------+
| npc    | nominativo         |
+--------+--------------------+
| 000971 | ZURISCHI DIMITREI  |
+--------+--------------------+
1 row in set (0.46 sec)
grazie!
ringo

 wrote in message
bcp62p$368$1...@newsread.albacom.net...

Per concatenare due campi devi per forza usare CONCAT()!
Non funziona se hai campi nulli che perņ puoi bypassare con la funzione
isnull().
Prova cosģ
SELECT npc,CONCAT(cognome1," ",IF(ISNULL(nome1),"",nome1)) as nominativo
FROM anacli;
Stesso controllo potresti fare per il cognome.
Ciao
"Non cercare di piegare il cucchiaio, č impossibile."


Ma la mia risposta, che tra l'altro č delle 11 non l'avete vista o avete
fatto finta che non ci fosse?
Giusto per sapere se i miei post vengono visti o no visto che vi avevo dato
la soluzione un bel pezzo prima!
OLA!


sorry ma la risposta non l'avevo vista...
mi sà che non c'era....
altrimenti non avrei sclerato fino alle 15:00
bye!
ringo

 la soluzione un bel pezzo prima!
La tua risposta č identica alla mia... io avevo letto tutte le risposte
prima di mettere la mia. Sicuramente la tua non c'era, altrimenti,
concordando con la tua risposta, non avrei risposto io.