Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Mysql z příkazového řádku  (Přečteno 2067 krát)

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Mysql z příkazového řádku
« kdy: 30 Září 2011, 12:53:26 »
Zdravím,

věděl by někdo jednodušší zápis pro komunikaci mezi shellem a mysql? Abych získal potřebná data, tak to zatím dělám takhle:

/**  SELECT id z databáze **/
mysql -uUSER -hHOST -pPASSWD -e "SELECT id FROM ...." > $FILE

/** odstranění prvního řádku, kde jsou názvy sloupců **/
sed "1 d" -i $FILE

while read line do;

  name= mysql -uUSER -hHOST -pPASSWD -e "SELECT name FROM table WHERE id=$line...." > $FILE
  event= mysql -uUSER -hHOST -pPASSWD -e "SELECT event FROM table WHERE id=$line ...." > $FILE
  notice= mysql -uUSER -hHOST -pPASSWD -e "SELECT notice FROM table WHERE id=$line ...." > $FILE

  echo "$name : $event : $notice"

done < $FILE

Syntaxe není úplně přesná, ale na ukázku to asi stačí ...prostě abych získal konkrétní sloupec, tak to musím dělat tak složitě, že ID zapisuju do souboru a z něj pak tahám co potřebuji ...funguje to tak jak by mělo, ale pokud to jde jednodušeji, byl bych rád...něco jak je v php Mysql_Fetch_Assoc, kde si pak proměnné budu tahat např: $result[name], $result[event] atd ...abych nemusel pro každý údaj dělat select..
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

donny

  • Závislák
  • ***
  • Příspěvků: 1861
Re:Mysql z příkazového řádku
« Odpověď #1 kdy: 30 Září 2011, 13:43:17 »
Viděl bych to na něco jako


mysql -uUSER -hHOST -pPASSWD -e "SELECT CONCAT_WS(' : ', t.name, t.event, t.notice) FROM table t LEFT JOIN table2 s ON s.id=t.id" > $file


Možná jsem to napsal blbě, ale kdyžtak mě jistě někdo opraví :)
« Poslední změna: 30 Září 2011, 13:51:58 od donny »
archlinux @ i7-6700/GTX1080 8G/32G DDR4/.5TB NVMe/WD RED 3TB | Raspbian 8 @ Raspberry Pi
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better!

On

  • Stálý člen
  • **
  • Příspěvků: 1136
    • Operační systémy
Re:Mysql z příkazového řádku
« Odpověď #2 kdy: 30 Září 2011, 20:23:41 »
No, pořád to ještě nebude úplně to pravé ...ten příklad s výpisem byl jen příklad, potřeboval bych každou proměnnou zvlášť ($name, $event, $notice)...navíc potřebuji dělat cyklus v cyklu a tam už narážím na trouble ...zkusím dát příklad v PHP co konkrétně potřebuji:

$sql = Mysql_Query("SELECT id FROM users WHERE name!=''");

while ($result = Mysql_Fetch_Assoc($sql)) {
     $id = $result["id"];
     $list = Mysql_Query ("SELECT * FROM list_event WHERE assign='$id'");
     while ($result2 = Mysql_Fetch_Assoc($list)) {

          $name = $result2["name"];
          $event = $result2["event"];
          $notice = $result2["notice"];
          $date = $result2["date"];
     }
}

....teď mě napadá, že ten cyklus tam vlastně nehraje roli, ale když už jsem si dal tu práci s napsáním, tak to tam nechám :) Prioritní pro mě jsou ty poslední proměnné ...abych měl jeden SELECT a z něj vytáhnul potřebná data.
Asus M2A-VM HDMI, Athlon 64 X2 4800+, 4GB DDR2/800Mhz,Powercolor HD 2600 XT, Ubuntu 10.10
Být posledním nevadí, ale nikdy nesmíte být poslední dvakrát po sobě - Iacocca

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re:Mysql z příkazového řádku
« Odpověď #3 kdy: 01 Října 2011, 13:10:39 »
Nastuduj si join a čti tu druhou tabulku spojenou s tou první.

 

Provoz zaštiťuje spolek OpenAlt.