Extwiz [ Pretorianin ]
Problem z bazą danych SQL
Słuchajcie mam pewien problem z bazą danych a mianowicie jak dodać do każdej wartości jakiś przedrostek. Mam np. gra.swf a potrzebuje dodać do każdego rekordu np adres strony aby wyglądało to tak gra.swf ?? Korzystam phpMyAdmin
Regis [ ]
A po co chcesz dodac taki przedrostek w bazie? To malo elastyczne rozwiazanie. Juz lepiej by bylo dodac osobna kolumne z tym przedrostkiem, a adres ktory chcesz otrzymac, uzyskiwac jako 'sklejenie' starej i nowej kolumny.
Ale jesli koniecznie chcesz ten przedrostek - w czym problem? Tzn. nie ma zadnej magicznej sztuczki, ktora Ci to ulatwi - robisz zapytanie UPDATE i jedziesz... No chyba, ze przedrostek ma byc wszedzie taki sam (ale wtedy - po co on w ogole?), wtedy robisz:
UPDATE xxx SET kolumna = CONCAT( 'adres', kolumna )
Glowy nie dam z tym CONCAT, bo nie uzywam na codzien MySQL, ale tak mi cos swita... Moze nawet wystarczy zwykly '+', albo '||'. W razie czego szukaj w google: mysql concatenation
Extwiz [ Pretorianin ]
A jak chcę dodać tą wartość w każdym rekordzie ??
yasiu [ Legend ]
jesli nie dodasz warunku WHERE, update traktuje kazdy rekord tak samo
jesli concat nie dziala, napisz sobie skrypt w php ktory ci to zrobi
Extwiz [ Pretorianin ]
Dałem zapytanie UPDATE 'ava_games' SET 'catergory_id' = CONCAT( ' 'catergory_id' ) i wychodzi błąd
Regis [ ]
Sorry, moja krysztalowa kula jest w warsztacie, wiec musisz napisac JAKI blad, jesli ma Ci ktos pomoc...
Poza tym mam dziwne wrazenie, ze kolumna 'category_id' oczekuje wartosci liczbowej...
Extwiz [ Pretorianin ]
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ava_games' SET 'catergory_id' = CONCAT( ' 'caterg' at line 1
Regis [ ]
Sprobuj podmienic (zgubiles przecinek i nie zamknales pierwszego cudzyslowu, a do tego zrobiles literowke w slowie "catergory":
CONCAT( ' catergory_id )
Ew. zamien funkcje CONCAT na zwykly operator + albo ||
Extwiz [ Pretorianin ]
jak podmieniam na to co napisałeś to pisze że nie zamknięty cudzysłów
Regis [ ]
Bo napisalem Ci, ze nie zamknales cudzyslowu za adresem strony, ale sam juz zapomnialem tego poprawic w cytowanym fragmencie ;P Troche kreatywnosci ;)
Extwiz [ Pretorianin ]
nie zrobiłem literówki bo kolumnia ma nazwe właśnie catergory_id
Extwiz [ Pretorianin ]
Napisz mi 'prosze' jak powinno to:
UPDATE 'ava_games' SET 'catergory_id' = CONCAT( ' 'catergory_id' )
prawidłowo wygladać. Nie znam się zbytnio na MySQL
Regis [ ]
Ze slowem 'prosze' Twoja prosba wygladalaby znacznie lepiej...
UPDATE ava_games SET catergory_id = CONCAT( ' catergory_id )
Ale nie gwarantuje, ze to zadziala - sam na codzien uzywam PostgreSQL'a i Oracle'a, a z MySQL'em mialem kontakt ostatni raz ponad rok temu.
EDIT: K***a, to GOL ucina drugi apostrof... Tam pomiedzy "gry/" a przecinkiem ma byc jeszcze jeden '
Extwiz [ Pretorianin ]
No chyba jestem Ci winien duże piwo :P Wyszło. DZIĘKUJE BARDZO
Regis [ ]
Prosze bardzo ;)
Edit: Tak. Varchar(10) ogranicza Cie do 10 znakow. Maksymalny rozmiar varchara, to chyba 255.
Extwiz [ Pretorianin ]
Jeszcze jedno małe pytanko:
Aby upchnąć tam więcej tekstu varchar(10) powinienem zwiększyć nie ??
Extwiz [ Pretorianin ]
DZIĘKI WIELKIE ZA POMOC
Extwiz [ Pretorianin ]
No i dalej mamy problem
Extwiz [ Pretorianin ]
Zawartość wszystkich tabel za tabelą catergory_id [rzesuneła mi sie o jedną pozycję :(