Toon posts:

ShellScripting Linux : SQL Query Value

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goedenmiddag,
Ik ben bezig met een sql value uit me database te halen door middel van een shellscript (linux) en deze vervolgens in een var te zetten.

Script :

QUERY="select incomming_status from incoming where incomming_id = 1"
echo "$QUERY" | mysql backups | while read incomming_status ; do
echo $incomming_status
done


Result :

incomming_status (veldnaam)
1 (waarde)

Als ik nu aalleen de waarde in een var wil stoppen. Hoe doe ik dit ?

Thnx

[ Voor 6% gewijzigd door Verwijderd op 22-01-2009 16:47 ]


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 19:27

leuk_he

1. Controleer de kabel!

wellicht te simpel....

code:
1
2
3
4
5
QUERY="select incomming_status from incoming where incomming_id = 1"
echo "$QUERY" | mysql backups | while read incomming_status ; do
echo $incomming_status
eenvar=$incomming_status
done


(set is optioneel)

eenvar heeft de laatste waarde die voorbij komt he? Werkt dus niet met een query die meer resulaten oplevert.


effe door gegoogled voor je

http://dev.mysql.com/doc/refman/5.0/en/batch-mode.html
--skip-column-names
Do not write column names in results. The short format, -N is deprecated, use the long format instead.

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Verwijderd

Topicstarter
Hai, Dankje alvast maar zover was ik ook al gekomen,

alleen als ik hem dan onder "DONE" dit doe :
code:
1
echo $eenvar

krijg ik niks terug.
terwijl ik hem wel in de loop zie ;)

[ Voor 5% gewijzigd door Verwijderd op 22-01-2009 17:20 ]


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 19:27

leuk_he

1. Controleer de kabel!

staat er een lege regel achter de query? 'echo result= $incomming_status'


dan zou

code:
1
2
3
4
5
6
7
QUERY="select incomming_status from incoming where incomming_id = 1"
echo "$QUERY" | mysql --skip-column-names  backups|head -1 | while read incomming_status ; do
echo $incomming_status
eenvar=$incomming_status
done
echo  eenval=$eenval
echo incomming_status=$incomming_status

[ Voor 68% gewijzigd door leuk_he op 22-01-2009 17:36 ]

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Verwijderd

Topicstarter
hai, der komt geen extra regel tussen, als je dat bedoeld

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 19:27

leuk_he

1. Controleer de kabel!

Verwijderd schreef op donderdag 22 januari 2009 @ 17:35:
hai, der komt geen extra regel tussen, als je dat bedoeld
achter.

zoals in
code:
1
2
3
incomming_status (veldnaam)
1 (waarde)
(lege regel)

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Weet je zeker dat het incomming is, en niet incoming? Incomming is bij mijn weten geen woord namelijk :)

Verwijderd

Topicstarter
ja had het fout getypt en tis een test voor een groter project vandaar dat ik het zo had laten staan. Nogal verwarrend maargoed ;) En er komt gene extra regel. alleen regel 1 Velnaam Regel 2 waarde.

[ Voor 20% gewijzigd door Verwijderd op 23-01-2009 08:40 ]


  • Tim
  • Registratie: Mei 2000
  • Laatst online: 04-08-2025

Tim

De waarde zit toch al in een variabele? (namelijk incomming_status).
Als je de waarde buiten de loop wilt gebruiken, moet je geen pipe gebruiken. Bash gebruik namelijk een nieuwe shell voor een pipe en dus zijn alle variabele local in de loop.

Maar volgens mij is
code:
1
incoming_status=$(echo "$QUERY" | mysql --skip-column-names backups | tail -n1)
wat je zoekt.
Pagina: 1