mam baze danych z wieloma tablicami,
zeby wyswietlic wszystkie wyniki z 3 tabel moge napisac tak:
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)
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';
gdzie w dowolnych kolumnach wartosc zawiera ciag 'a';