Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Drop Table mit Wildcards .... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Drop Table mit Wildcards ....


 
CroatiaMan
29-07-2002, 22:12 
 
Hi Leute brauch ganz dringen ne Hilfestellung. In meine DB (MySQL) hab ich jede menge Tabellen eines projektes die so aussehen.

projectebo_user
projectebo_pages

usw.


ich will jetzt alle Tabellen löschen die mit projectebo_ beginnen. Wie ist denn dafür der Befehl?

drop table projectebo_* oder wie ?

PLZ Help

THX

 
CHnuschti
30-07-2002, 02:37 
 
es gibt den mysql-befehl teil where.

blabla where...

Da kannst du ein REGEXP einbauen. Damit musst du dich allerdings etwas befassen, die Thematik ist m.E. nicht so auf die schnelle kapiert.

Bsp.

$sqlan = "delete from " . $selection . " where Nummer REGEXP '^[a-zA-Z]{1}[0-9]{3,3}$'"

Löscht Zeilen in der table $selection, deren Spalte "Nummer" 4 Stellen aufweist, 1 Buchstabe + 3 Zahlen.

Ich nehm an, diese where-Bedingung kann man auch auf drop tables usw. anwenden.

EDIT:
im mysql-Handbuch hab ich nichts gefunden, das explizit besagt, dass die where-clause mit drop... funktioniert.
Wenn so nicht geht, musst du zunächst halt deine Table-Namen durchleuchten (das geht sicher) dann mit regexp die "richtigen" rausfischen und anschliessend die Teile in ner Schleife mit drop.. löschen.
Das wäre die Methode, um "exakt" was rauszufiltern.

In deinem Fall gehts aber vllt. einfacher.
In mysql ist _ die Wildcard für 1 Zeichen, % für beliebig viele Zeichen (zumindest innerhalb der where-clause).

Handelt es sich jedoch um eine einmalige Sache empfehle ich Handarbeit im phpmyadmin :D :D :D


mfg

 
Titus
30-07-2002, 12:52 
 
$prefix = 'projectebo_';
mysql_connect(...);
mysql_select_db(...);
$q = mysql_query('show tables');
while (list($tab) = mysql_fetch_row($q))
if (!strncmp($prefix, $tab, strlen($prefix)))
mysql_query('drop table '.$tab);


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:26 Uhr.