Фрагменти таблиць MySQL і виправлення типових проблем
Фрагменти таблиці MySQL?
Так, в цій статті їх чимало. Але перш ніж ми перейдемо до цього, що таке MySQL? Почнемо з визначення MySQL. MySQL — це система керування реляційними базами даних (RDBMS) із відкритим вихідним кодом, що підтримується Oracle і базується на мові структурованих запитів (SQL).
Програми, які використовують базу даних MySQL, включають TYPO3, MODx, Joomla, WordPress, Simple Machines Forum, phpBB, MyBB і Drupal. MySQL також використовується на багатьох гучних, великих веб-сайтах, включаючи Google (хоча не для пошуку), Facebook, Twitter, Flickr і YouTube.
І після всього цього вступу ви розумієте, що MySQL більший, ніж ви спочатку думали. Хіба що ви деякий час працюєте в галузі. Однак якщо ви новачок і бажаєте дізнатися більше про MySQL, найпростіший спосіб зробити це — скористатися фрагментами таблиць MySQL.
Фрагменти таблиць MySQL
Зіставте рядок на початку рядка
SELECT 'Test' REGEXP '^The'; -- 0 SELECT 'The Test' REGEXP '^The'; -- 1
Якщо ім’я не має префікса «The», додайте його
UPDATE [table] SET Name = CONCAT('The ', TRIM(Name)) WHERE Name NOT REGEXP '^The'
Копіювання стовпця з однієї таблиці в іншу
INSERT INTO [table] (
) SELECT FROM [table]
Видалити всі пробіли
UPDATE [table] SET
= REPLACE(, ' ', '')
(це BASH) видалити всі таблиці в базі даних
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Перейти до сортування таблиці та всіх її наявних стовпців
alter table [table] convert to character set utf8 collate utf8_general_ci;
Пошук і заміна MySQL
UPDATE files SET filepath = REPLACE(filepath,'path/to/search','path/to/replace');
Вибір випадкового рядка в MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1
Створіть CSV із MySQL
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';
Знайти повторювані записи
SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n >1;
Виправлення неправильного кодування символів у даних MySQL
UPDATE table SET column=CONVERT(CONVERT(CONVERT(column USING latin1) USING binary) using utf8);
Завантажте CSV назад у mySQL
LOAD DATA local INFILE 'unique.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' (col1, col2, col3)
Drupal 6.x Знайти код PHP у базі даних
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);
Генерувати випадковий рядок у MySQL
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS randomstring
Розрахувати вік від дати народження
SELECT FLOOR(DATEDIFF(CURRENT_DATE(), dob) / 365);
Знайти та замінити
UPDATE table_name SET column_name = REPLACE(column_name, 'http://oldcontent.com', 'http://newcontent.com');
Виберіть між двома датами
SELECT * FROM files LEFT JOIN (dates) ON files.uploaded_id = dates.id WHERE date BETWEEN '2009-01-01' AND '2009-12-31'
Резервне копіювання бази даних MySQL у файл SQL за допомогою mysqldump
mysqldump --user=username --password=password --opt --add-drop-database --databases databasename > ~/path/to/file.sql
як розрахувати останні 7 днів
WHERE mydatefld >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
дамп mysql
mysqldump -u [username] -p [password] [databasename] > [backupfile.sql]
Заміна Mysql
`# Замінити рядок у всіх записах таблиці
UPDATE table_name SET column_name = REPLACE( column_name, ‘/dev’, " );
SELECT REPLACE( column_name, ‘/dev’, “) FROM table_name;`
Перетворення часового поясу на місцевий
SELECT CONVERT_TZ(mydatefield,'US/Pacific','CET') FROM mytable;
Пошук і заміна в кількох рядках у SQL
UPDATE wp_posts SET post_content = REPLACE(post_content, 'staging.server.com', 'www.productionserver.com');
Як зберегти результати з MySQL у зовнішній файл
echo "SELECT columns FROM table_name WHERE whatever='something'" | /path/to/mysql -uUSERNAME -pPASSWORD DATABASENAME > /tmp/outfile.txt;
Вставте або оновіть, якщо унікальний ключ уже існує
INSERT INTO `tableName` VALUES (?,?,?,'-1',?,'0') ON DUPLICATE KEY UPDATE `id` = ?, `foo` = ?, `bar` = ?
mySQL – команди резервного копіювання бази даних
-- 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
mysql -u [username] -p [dbname] < [filename].sql
знайти дублікати записів
select address, count(address) as cnt from mailing_list group by address having cnt > 1 order by cnt;
Пошук і заміна MySQL
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'find this string', 'replace found string with this string');
Змініть шлях до каталогу файлів Drupal
UPDATE FILES SET filepath = REPLACE(filepath, 'sites/default/files/old/','sites/default/files/new/');
Знайти всі таблиці в базі даних MySQL, що містять певні імена стовпців
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';
Знайдіть значення, які зустрічаються в таблиці рівно один раз
SELECT email FROM users GROUP BY email HAVING (COUNT(email) = 1 )
Скрипт MySql для пошуку недійсних адрес електронної пошти
SELECT * FROM people WHERE email NOT LIKE '%_@__%.__%'
Розрахунок віку MySQL
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) >= 65
Ліві об’єднання для зв’язування трьох або більше таблиць
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 відповідає списку, розділеному комами
WHERE id REGEXP '(,|^){$this->id}(,|$)'
Отримати випадковий запис на основі ваги
SELECT * FROM Table ORDER BY Rand() * (1 / Weight
Ми сподіваємося, що ці фрагменти таблиць MySQL – це те, що ви шукали. Ми оновимо цю статтю іншими фрагментами MySQL, які ми зустрінемо в майбутньому, тому обов’язково додайте її в закладки.
Якщо вам сподобалося читати цю статтю про фрагменти таблиць MySQL, ви також повинні прочитати ці:
- Створення системи CRUD в WordPress (2018)
- 12 порад щодо створення успішного преміум-плагіна або теми WordPress
- Як розмістити веб-сайт: пояснення всіх кроків
- Оптимізація таблиці WordPress WP_OPTIONS