Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyświetlenie wszystkich rekordow spelniajacych like z wszystkich tabel w bazie spelniajacych REGEXP lub LIKE, like regexp wszystkie tabele w bazie all_tables
test30
post 11.02.2008, 20:31:54
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 15.12.2007

Ostrzeżenie: (0%)
-----


witam,
mam baze danych z wieloma tablicami,
zeby wyswietlic wszystkie wyniki z 3 tabel moge napisac tak:
  1. SELECT * FROM tabelapierwsza UNION ALL SELECT * FROM tabeladruga UNION ALL SELECT * FROM tablelatrzecia UNION ALL SELECT * FROM tabelaczwarta

mozna zauwazyc ze wszystkie tabele z ktorych korzystam zaczynaja sie od 'tablela';
jak powinno wygladac poprawna skladnia polecenia aby to wykorzystac?
[kod]SELECT * from nazwatabeli
WHERE nazwatabeli REGEXP 'tabela.+'[/kod];

druga sprawa jest ze chcialbym do tego dodac kwalifikator, ktory sprawdza czy dana wartosc rekordu z tabel spelnia warunek REGEXP lub LIKE;
chodzi mi mniej wiecej o takie cos:
Kod
select * from (wszystkie tabele spelniajace regexp) where (jakakolwiek wartosc z wszystkich kolumn spelnia warunek)


mam nadzieje ze do tej pory mozna bylo mnie zrozumiec, ale powiem jeszcze jak moja baza wyglada:
mam tabele w bazie danych
Kod
tabelapierwsza,
tabeladruga,
tabelatrzecia,
tabelaczwarta,
tabelapiata,
tableaszosta,
tabelasiodma,
+tabela(+kilkaset kolejnych)

ta baza zwieksza sie caly czas wiec nie jest praktyczne uzupelnianie co jakis czas listy baz do skorzystania;
kazda z tabel ma strukture:
[pre]tabelapierwsza:
imie|nazwisko
Jan | Kowalski
Jan | nazwiskodwa
Jerzy|nazwiskotrzy[/pre]
[pre]tabeladruga:
imie|nazwisko
Grzegorz| Nowak
Pan| nazwiskocztery
Jerzy|nazwiskopiec[/pre];

chcialbym jednym poleceniem zwrocic wszystkie imiona i nazwiska ktore spelniaja warunek REGEXP '*a*' lub LIKE '%a%';
reasumujac
Kod
select * from [wszystkie tabele ktorych nazwa zaczyna sie od 'tabela']
gdzie w dowolnych kolumnach wartosc zawiera ciag 'a';
Go to the top of the page
+Quote Post
Łukasz O.
post 11.02.2008, 21:16:14
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 5
Dołączył: 13.01.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $tabela_wszystkich_tabel = $db->query('SHOW TABLES');
  3.  
  4. foreach($tabela_wszystkich_tabel as $tabela){
  5.  $tabele .= $tabela.',';
  6. }
  7.  
  8. $db->query('SELECT * FROM '.substr($tabele,0,strlen($tabele)-1).' WHERE '.$warunki);
  9. ?>


--------------------
"Don't tell me you want a bridge - show me the canyon you want to cross" Giuseppe Delena
Go to the top of the page
+Quote Post
test30
post 11.02.2008, 21:35:38
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 15.12.2007

Ostrzeżenie: (0%)
-----


a czy istnieje mozliwosc zrobienia tego w czystym mysql, chodzi mi o laczenie baz, zeby zapisac to zeby wypisywalo rekordy z union all w petli w czystym mysql
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 02:12