MySQL-Tabellenausschnitte und Korrekturen für häufige Probleme
MySQL-Tabellenausschnitte?
Ja, es gibt einige davon in diesem Artikel. Aber bevor wir dazu kommen, was ist MySQL? Beginnen wir mit der MySQL-Definition. MySQL ist ein von Oracle unterstütztes relationales Open-Source-Datenbankmanagementsystem (RDBMS), das auf der Structured Query Language (SQL) basiert.
Zu den Anwendungen, die die MySQL-Datenbank verwenden, gehören TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB und Drupal. MySQL wird auch auf vielen hochkarätigen, groß angelegten Websites verwendet, darunter Google (allerdings nicht für die Suche), Facebook, Twitter, Flickr und YouTube.
Und nach all dieser Einführung stellen Sie fest, dass MySQL größer ist, als Sie ursprünglich dachten. Es sei denn, Sie sind schon länger in der Branche tätig. Wenn Sie jedoch ein Neuling sind und mehr über MySQL erfahren möchten, ist dies am einfachsten mit MySQL-Tabellenausschnitten möglich.
MySQL-Tabellenausschnitte
Gleicht eine Zeichenfolge am Anfang der Zeichenfolge ab
SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1
Wenn einem Namen nicht das Präfix „The“ vorangestellt ist, fügen Sie ihn hinzu
UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'
Kopieren Sie eine Spalte von einer Tabelle in eine andere
INSERT INTO [table] (
) SELECT FROM [table]
Entfernen Sie alle Leerzeichen
UPDATE [table] SET
= REPLACE(, ' ', '')
(das ist BASH) alle Tabellen in einer Datenbank löschen
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Wechseln Sie zur Sortierung einer Tabelle und aller ihrer vorhandenen Spalten
alter table [table] convert to character set utf8 collate utf8_general_ci;
MySQL Suchen und Ersetzen
UPDATE files SET filepath = REPLACE(filepath,'path/to/search','path/to/replace');
Auswählen einer zufälligen Zeile in MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1
CSV aus MySQL erstellen
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';
Finden Sie doppelte Datensätze
SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n >1;
Korrigieren einer falschen Zeichencodierung in MySQL-Daten
UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);
Laden Sie CSV zurück in mySQL
LOAD DATA local INFILE 'unique.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (col1, col2, col3)
Drupal 6.x Finden Sie PHP-Code in der Datenbank
select nid, vid from node_revisions where format in (select format from filters where module = 'php' and delta = 0); select cid, nid from comments where format in (select format from filters where module = 'php' and delta = 0); select bid, info from boxes where format in (select format from filters where module = 'php' and delta = 0);
Generieren Sie eine zufällige Zeichenfolge in MySQL
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring
Berechnen Sie das Alter aus dem Geburtsdatum
SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) / 365);
Ersatz finden
UPDATE table_name SET column_name = REPLACE(column_name, 'http://oldcontent.com', 'http://newcontent.com');
Wählen Sie zwischen zwei Terminen
SELECT * FROM files LEFT JOIN (dates) ON files.uploaded_id = dates.id WHERE date BETWEEN '2009-01-01' AND '2009-12-31'
Sichern Sie die MySQL-Datenbank mit mysqldump in eine SQL-Datei
mysqldump --user=username --password=password --opt --add-drop-database --databases databasename > ~/path/to/file.sql
wie berechnet man die letzten 7 tage
WHERE mydatefld >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
MySQL-Dump
mysqldump -u [username] -p [password] [databasename] > [backupfile.sql]
MySQL ersetzen
`# Zeichenfolge in allen Datensätzen einer Tabelle
ersetzen UPDATE Tabellenname SET Spaltenname = REPLACE( Spaltenname, ‚/dev‘, " );
SELECT REPLACE( Spaltenname, ‚/dev‘, „) FROM Tabellenname;`
Konvertieren Sie die Zeitzone in die lokale
SELECT CONVERT_TZ(mydatefield,'US/Pacific','CET') FROM mytable;
Suchen und Ersetzen in mehreren Zeilen in SQL
UPDATE wp_posts SET post_content = REPLACE(post_content, 'staging.server.com', 'www.productionserver.com');
So speichern Sie Ergebnisse von MySQL in einer externen Datei
echo "SELECT columns FROM table_name WHERE whatever='something'" | /path/to/mysql -uUSERNAME -pPASSWORD DATABASENAME > /tmp/outfile.txt;
Einfügen oder aktualisieren, wenn bereits ein eindeutiger Schlüssel vorhanden ist
INSERT INTO `tableName` VALUES (?,?,?,'-1',?,'0') ON DUPLICATE KEY UPDATE `id` = ?, `foo` = ?, `bar` = ?
mySQL – Datenbanksicherungsbefehle
-- dump mySQL database to file: VAR=$(date +�%y-%m-%d�); mysqldump -v -uUSERNAME -pPASSWORD -hlocalhost DATABASENAME > /BACKUPDIR/$VAR-DATABASENAME.sql ;
-- dump mySQL database to file and then move it: VAR=$(date +�%y-%m-%d�); mysqldump -v -uUSERNAME -pPASSWORD -hlocalhost DATABASENAME > /BACKUPDIR/$VAR-DATABASENAME.sql ; mv /BACKUPDIR/DATABASENAME.sql /OTHERBACKUPDIR/$VAR-DATABASENAME.sql ;
MySQL-Import
mysql -u [username] -p [dbname] < [filename].sql
finden Sie doppelte Datensätze
select address, count(address) as cnt from mailing_list group by address having cnt > 1 order by cnt;
MySQL Suchen und Ersetzen
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string');
Ändern Sie den Verzeichnispfad der Drupal-Datei
UPDATE FILES SET filepath = REPLACE(filepath, 'sites/default/files/old/','sites/default/files/new/');
Finden Sie alle Tabellen in der MySQL-Datenbank, die bestimmte Spaltennamen enthalten
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';
Finden Sie Werte, die genau einmal in der Tabelle vorkommen
SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )
MySQL-Skript zum Auffinden ungültiger E-Mail-Adressen
SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'
MySQL-Altersberechnung
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) >= 65
Left Joins zum Verknüpfen von drei oder mehr Tabellen
select * from (bdg left join res on bdg.bid = res.bid) left join dom on res.rid = dom.rid where dom.rid is NULL;
MySQL-REGEX-Match-Komma-getrennte Liste
WHERE id REGEXP '(,|^){$this->id}(,|$)'
Holen Sie sich eine zufällige Aufzeichnung basierend auf dem Gewicht
SELECT * FROM Table ORDER BY Rand() * (1 / Weight
Wir hoffen, dass diese MySQL-Tabellenausschnitte das sind, wonach Sie gesucht haben. Wir werden diesen Artikel mit anderen MySQL-Snippets aktualisieren, auf die wir in Zukunft stoßen, also stellen Sie sicher, dass Sie ein Lesezeichen dafür setzen.
Wenn Ihnen dieser Artikel über MySQL-Tabellenausschnitte gefallen hat, sollten Sie auch diese lesen:
- Erstellen eines CRUD-Systems in WordPress (2018)
- 12 Tipps zum Erstellen eines erfolgreichen WordPress Premium Plugins oder Themes
- So hosten Sie eine Website: Alle Schritte erklärt
- WordPress WP_OPTIONS-Tabellenoptimierung