mySQL

mysql Сменить collate (collation) кодировку и кодировку сравнения таблицы -- sql запрос

Forums:

Как-то так:

alter table имя_таблицы convert to 
   character set utf8 collate utf8_general_ci;

где utf8 -- имя кодировки.

mysql Выполнение запроса без подключения к базе -- командная строка терминал

Forums:

"Без подключения" в смысле без контекста mysql.

Вместо root, возможно? придётся использовать имя вашего пользователя mysql (если оно отличается).

Для конктреной базы

Можно так:

mysql -u root -p db1 -e "ваш SQL запрос"

Без выбора базы данных

Можно так:

mysql -u root -p  -e "ваш SQL запрос"

Фильтрация

Например, таким образом фильтровать данные о конфигурации базы в терминале линукс:

ubuntu mysql Включить логгирование журналирование SQL запросов -- какой файл конфига править (16.04)

Для включения нам придётся поправить конфигурацию, а также возможно смотреть лог ошибок.

Вообще для включени логгирования нам нужны опции типа:

[mysqld]
general_log_file = /var/log/mysql/query.log
general_log      = 1

вопрос в том в какой файл это вставлять.

Быстрое решение (ubuntu)

Редактируем (этот файл у вас уже должен существовать):

mysql REPLACE -- как аналог INSERT, множественный INSERT из SELECT on Duplicate key update (ODKU)

Forums:

Оператор REPLACE работает точно так же, как INSERT, за исключением того, что если старая запись в данной таблице имеет то же значение индекса UNIQUE или PRIMARY KEY, что и новая, то старая запись перед занесением новой будет удалена.

Начиная с версии 5.6 можно использовать replace -- который просто перезапишет, старые данные новыми (то есть, запрос выполнился, даже если будет совпадение Primary Key или уникального ключа).

Пример множественного "инсерта" из select-a:

mysql Date - сравнение даты (столбца) со строковым литералом

Forums:

Можно сравинивать дату со строкой передавая строку в формате "год-месяц-число":

SELECT * FROM Ticket WHERE OpenDate > '2017-05-01';

Множественный INSERT -- для каждой строки из SELECT-а (пример SQL запроса) -- (аналог "цикла")

Forums:

Идя множественного добавления по результатам запроса такова:

INSERT INTO config (id, customer_id, domain) 
    SELECT DISTINCT id, customer_id, domain FROM config;

mysql Дефис в имени базы данных ("тире") -- SQL запрос (в том числе создание)

Forums:

Если в названии базы есть дефис, то необходимо такую строку окружить обратными кавычками, например:

create database `my-test-base`;

Иначе можно получить ошибку вроде:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '

Источник решения: http://hijarian-sys.blogspot.ru/2011/09/mysql.html

Pages

Subscribe to RSS - mySQL