MySQL-tabellsnuttar och korrigeringar av vanliga problem
MySQL-tabellsnuttar?
Ja, det finns en hel del av dem i den här artikeln. Men innan vi kommer till det, vad är MySQL? Låt oss börja med MySQL-definitionen. MySQL är ett Oracle-stödt open source relationsdatabashanteringssystem (RDBMS) baserat på Structured Query Language (SQL).
Applikationer som använder MySQL-databasen inkluderar TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB och Drupal. MySQL används också på många högprofilerade, storskaliga webbplatser, inklusive Google (men inte för sökningar), Facebook, Twitter, Flickr och YouTube.
Och efter allt det där introt inser du att MySQL är större än du först trodde. Om du inte har funnits ett tag i branschen. Om du däremot är en nykomling och vill lära dig mer om MySQL är det enklaste sättet att göra det med MySQL-tabellsnuttar.
MySQL-tabellsnuttar
Matcha en sträng i början av strängen
SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1
Om ett namn inte har prefixet ’The’, lägg till det
UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'
Kopiera en kolumn från en tabell till en annan
INSERT INTO [table] (
) SELECT FROM [table]
Ta bort alla blanksteg
UPDATE [table] SET
= REPLACE(, ' ', '')
(detta är BASH) släpp alla tabeller i en databas
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Ändra till sortering av en tabell och alla dess befintliga kolumner
alter table [table] convert to character set utf8 collate utf8_general_ci;
MySQL Sök och ersätt
UPDATE files SET filepath = REPLACE(filepath,'path/to/search','path/to/replace');
Välja en slumpmässig rad i MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1
Skapa CSV från MySQL
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';
Hitta dubbletter av poster
SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n >1;
Rättar fel teckenkodning i MySQL-data
UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);
Ladda tillbaka CSV till mySQL
LOAD DATA local INFILE 'unique.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (col1, col2, col3)
Drupal 6.x Hitta PHP-kod i databasen
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);
Generera slumpmässig sträng i MySQL
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring
Beräkna ålder från födelsedatum
SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) / 365);
Hitta & ersätt
UPDATE table_name SET column_name = REPLACE(column_name, 'http://oldcontent.com', 'http://newcontent.com');
Välj mellan två datum
SELECT * FROM files LEFT JOIN (dates) ON files.uploaded_id = dates.id WHERE date BETWEEN '2009-01-01' AND '2009-12-31'
Säkerhetskopiera MySQL-databas till SQL-fil med mysqldump
mysqldump --user=username --password=password --opt --add-drop-database --databases databasename > ~/path/to/file.sql
hur man beräknar de senaste 7 dagarna
WHERE mydatefld >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
mysql dump
mysqldump -u [username] -p [password] [databasename] > [backupfile.sql]
Mysql ersätt
`# Ersätt sträng i alla poster från en tabell
UPPDATERA tabellnamn SET kolumnnamn = REPLACE( kolumnnamn, ’/dev’, " );
SELECT REPLACE( kolumnnamn, ’/dev’, ”) FRÅN tabellnamn;`
Konvertera tidszon till lokal
SELECT CONVERT_TZ(mydatefield,'US/Pacific','CET') FROM mytable;
Sök och ersätt på flera rader i SQL
UPDATE wp_posts SET post_content = REPLACE(post_content, 'staging.server.com', 'www.productionserver.com');
Hur man sparar resultat från MySQL till en extern fil
echo "SELECT columns FROM table_name WHERE whatever='something'" | /path/to/mysql -uUSERNAME -pPASSWORD DATABASENAME > /tmp/outfile.txt;
Infoga eller uppdatera om unik nyckel redan finns
INSERT INTO `tableName` VALUES (?,?,?,'-1',?,'0') ON DUPLICATE KEY UPDATE `id` = ?, `foo` = ?, `bar` = ?
mySQL – kommandon för säkerhetskopiering av databas
-- 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
hitta dubbletter av poster
select address, count(address) as cnt from mailing_list group by address having cnt > 1 order by cnt;
MySQL Sök och ersätt
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string');
Ändra sökvägen till Drupal-filkatalogen
UPDATE FILES SET filepath = REPLACE(filepath, 'sites/default/files/old/','sites/default/files/new/');
Hitta alla tabeller i MySQL-databasen som innehåller specifika kolumnnamn
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';
Hitta värden som förekommer exakt en gång i tabellen
SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )
MySql-skript för att hitta ogiltiga e-postadresser
SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'
MySQL åldersberäkning
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) >= 65
Left Joins för att länka tre eller fler tabeller
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 matchar kommaavgränsad lista
WHERE id REGEXP '(,|^){$this->id}(,|$)'
Få slumpmässigt rekord baserat på vikt
SELECT * FROM Table ORDER BY Rand() * (1 / Weight
Vi hoppas att dessa MySQL-tabellsnuttar är det du letade efter. Vi kommer att uppdatera den här artikeln med andra MySQL-snuttar som vi stöter på i framtiden, så se till att bokmärka den.
Om du tyckte om att läsa den här artikeln om MySQL-tabellsnuttar, bör du också läsa dessa:
- Skapa ett CRUD-system i WordPress (2018)
- 12 tips för att skapa ett framgångsrikt WordPress Premium-plugin eller tema
- Hur man är värd för en webbplats: Alla steg förklaras
- WordPress WP_OPTIONS tabelloptimering