Архив

Публикации с меткой ‘mysql’
10 марта 2020 Нет комментариев

shell скрипт для автоматического изменения кодировки таблиц и столбцов с utf8 на utf8mb4

#!/bin/bash
 
# mycollate.sh <database> [<charset> <collation>]
# changes MySQL/MariaDB charset and collation for one database - all tables and
# all columns in all tables
 
DB="$1"
CHARSET="$2"
COLL="$3"
 
AUTH="-uuser -ppass"
 
[ -n "$DB" ] || exit 1
[ -n "$CHARSET" ] || CHARSET="utf8mb4"
[ -n "$COLL" ] || COLL="utf8mb4_general_ci"
 
echo $DB
echo "ALTER DATABASE \`$DB\` CHARACTER SET $CHARSET COLLATE $COLL;" | mysql $AUTH
 
echo "USE \`$DB\`; SHOW TABLES;" | mysql -s $AUTH | (
	while read TABLE; do
		echo $DB.$TABLE
		echo "ALTER TABLE \`$TABLE\` CONVERT TO CHARACTER SET $CHARSET COLLATE $COLL;" | mysql $AUTH $DB
	done
)

https://dba.stackexchange.com/questions/8239/how-to-easily-convert-utf8-tables-to-utf8mb4-in-mysql-5-5

Categories: Mac, Unix Tags: ,
8 февраля 2019 Нет комментариев

Когда текст обрезается после первого смайла (эмодзи).
Использовать кодировку utf8mb4_general_ci вместо utf8_general_ci

Categories: MySQL Tags:
27 февраля 2018 Нет комментариев

Найти в таблице catalog записи с повторяющимся uid.
Показать все:

SELECT * FROM `catalog` WHERE `uid` IN (SELECT `uid` FROM `catalog` GROUP BY `uid` HAVING COUNT(`uid`)>1) ORDER BY `uid` ASC, `id` DESC;

Показать только уникальные:

SELECT * FROM `catalog` WHERE `uid` IN (SELECT `uid` FROM `catalog` GROUP BY `uid` HAVING COUNT(`uid`)>1) GROUP BY `uid` ORDER BY `uid` ASC, `id` DESC;

Поиск по двум столбцам

Categories: MySQL Tags:
8 февраля 2018 Нет комментариев

Заменяем /temp/ на / в parent_chpu в таблице seo в строках, которые начинаются с /temp/

UPDATE `seo` SET `parent_chpu` = REPLACE(`parent_chpu`, '/temp/', '/') WHERE `parent_chpu` LIKE '/temp/%' OR `parent_chpu`='/temp/';

Заменяем 125/ на «ничего» в path в таблице mod_shop в строках, которые начинаются с 125/

UPDATE `mod_shop` SET `path` = REPLACE(`path`, '125/', '') WHERE `path` LIKE '125/%';
Categories: MySQL Tags:
8 февраля 2018 Нет комментариев

Добавляем в parent_chpu в таблице seo в начало каждой строки /

UPDATE `seo` SET `parent_chpu` = CONCAT('/', `parent_chpu`);
Categories: MySQL Tags:
27 сентября 2017 Нет комментариев

Получить вначале строки, у которых текст в поле типа TEXT заполнен.

SELECT * FROM `table` ORDER BY CHAR_LENGTH(`content`)>0 DESC, `pos` ASC;
Categories: MySQL Tags:
18 сентября 2017 Нет комментариев

Экспорт:

mysqldump -u dbuser -p -h dbhost dbname > dbdump.sql

Импорт:

mysql -u dbuser -p -h dbhost dbname < dbdump.sql
Categories: MySQL Tags: