Запрос с условием IF в MySQL..
Синтаксис:
IF(выражение, значение если true, значение если false)
Например:
Возвратит act=1 если текущий момент времени между timefrom и timeto, а так-же futu=1 если timefrom>=now()
Жизнь замечательных грибов
Синтаксис:
IF(выражение, значение если true, значение если false)
Например:
Возвратит act=1 если текущий момент времени между timefrom и timeto, а так-же futu=1 если timefrom>=now()
1. Останавливаем службу MySQL:
/usr/local/etc/rc.d # ./mysql-server stop
2. Запускаем службу с опцией —skip-grant-tables
mysqld_safe —skip-grant-tables &
3. Подключаемся с серверу MySQL при помощи клиента mysql:
mysql -u root
4. Вводим новый пароль для root:
mysql> use mysql;
mysql> update user set password=PASSWORD(«NEW-ROOT-PASSWORD») where User=’root’;
mysql> flush privileges;
mysql> quit
5. Останавливаем сервер MySQL:
/etc/init.d/mysql stop
6.Запускаем MySQL-сервер и логинимся с новым паролем:
/usr/local/etc/rc.d # ./mysql-server start
mysql -u root -p
Иной раз не знаешь где затупишь. Казалось бы простой запрос с использованием UNION, а потратил кучу времени, чтобы выяснить, почему он иногда не корректно отрабатывает.
Было:
Стало:
В чем соль? Оператор UNION без опции ALL оказывается обладает свойствами группировки одинаковых значений в запросе. Например у меня, при одинаковых одновременных значениях даты и суммы происходила группировка этих строчек в одну…
Дано: MySQL 5.1.72, таблицы созданные в utf8-general-ci, установка соединения вызывается следующей функцией:
И хоть ты тресни, запрос вида:
Сортировался по непонятно каким критериям. Потеряв на поиск причины несколько часов, перепробовав кучу «рецептов», пришлось заворачивать сортировку запросов в команду binary(), т.е. вот так:
Костыль конечно.. И сортирует различая большие и маленькие буквы. Но таки лучше так чем никак. Ищу лучшее решение.