MySQL Заказ с использованием строки даты данных -- php поле с участием sql поле с участием mysql поле с участием sql-order-by пол Связанный проблема

Mysql ORDER BY using date data row


8
vote

проблема

русский

У меня есть запрос что-то подобное:

 <код> public class AlarmReciever extends BroadcastReceiver { AlarmClock alarmClock=new AlarmClock();  @Override public void onReceive(Context context, Intent intent) {     Log.e("AlarmReciever","Alarm Reciever Error");     Intent intent_service=new Intent(context,RingtonPlayingService.class);     context.startService(intent_service); }} 1  

работает нормально, когда данные на самом деле имеют дату. Проблема в том, что подача даты является необязательным, поэтому я иногда получаю 0000-00-00 в качестве даты, что имеет несчастный эффект размещения всех нарушенных строк сверху.

Так, я попробовал это:

 <код> public class AlarmReciever extends BroadcastReceiver { AlarmClock alarmClock=new AlarmClock();  @Override public void onReceive(Context context, Intent intent) {     Log.e("AlarmReciever","Alarm Reciever Error");     Intent intent_service=new Intent(context,RingtonPlayingService.class);     context.startService(intent_service); }} 2  

Какой вид работает, но не совсем - все предметы с датами (не 0000-00-00) получают перечисленные в порядке убывания, а затем все элементы с 0000-00-00.

Что я хочу сделать, это заказать по дате ASC, title ASC, но только если дата! = 0000-00-00, но если дата = 0000-00-00, то просто заказать по заголовке ASC на тех ( Я думаю, что я объяснил это правильно).

Единственные способы, которыми я могу подумать, что это не на основе SQL (либо 2 запроса, либо каждый запрос только наполняет массив в памяти, а затем сортировать с помощью PHP).

Есть ли запрос SQL, который может сделать это?

Английский оригинал

I have a query something like this:

SELECT   title, desc, date  FROM   tablename  ORDER BY   date ASC, title ASC; 

Works fine when the data actually has a date. Issue is, date submission is optional, so I sometimes get 0000-00-00 as a date, which has the unfortunate effect of placing all nondated rows on top.

So, I then tried this:

SELECT   title, desc, date  FROM   tablename  ORDER BY   date DESC, title ASC; 

Which sort of works, but not really -- all items with dates (non 0000-00-00) get listed in descending order, followed by all items with 0000-00-00.

What I want to do is order by date ASC, title ASC, but only if the date != 0000-00-00, but if date is = 0000-00-00, then just ORDER BY title ASC on those (I think I explained that correctly).

The only ways I can think to do this are non-SQL based (either 2 queries, or, each query just populates an in-memory array, and then I sort using PHP).

Is there a SQL query that can do this?

</div
           
 
 

Список ответов

4
 
vote
vote
Лучший ответ
 

Ваш 2 Решение запроса - это хороший, вы можете сделать все это в SQL, используя <Код> Intent alarmIntent = new Intent(this, AlarmReceiver.class); pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); manager.cancel(pendingIntent); 0 команду.

Первый запрос будет для дат, которые ненулены, а затем соединение в запросе для дат, которые равны нулю.

Редактировать: что-то вроде:

 <код> Intent alarmIntent = new Intent(this, AlarmReceiver.class);         pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);         manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);         manager.cancel(pendingIntent); 1  

Это может быть не очень полезно в этом случае, но для сложных запросов, <код> Intent alarmIntent = new Intent(this, AlarmReceiver.class); pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); manager.cancel(pendingIntent); 2 может пригодиться.

 

Your 2 query solution is a good one, you can do it all in SQL using the UNION command.

The first query will be for dates that are non-zero, then UNION in the query for dates that are zero.

Edit: Something like:

SELECT * FROM tbl     WHERE DATE != '0000-00-00'     ORDER BY date ASC  UNION SELECT * FROM tbl    WHERE DATE = '0000-00-00'    ORDER BY title ASC 

This may not be very useful in this instance, but for complex queries, UNION can come in handy.

</div
 
 
   
   
9
 
vote
 <код> Intent alarmIntent = new Intent(this, AlarmReceiver.class);         pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);         manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);         manager.cancel(pendingIntent); 3  
 
ORDER BY date = '0000-00-00' ASC, date ASC, title ASC 
</div
 
 

Связанный проблема

0  Добавление поля в запросе MySQL  ( Adding a field in a mysql query ) 
Мне нужно добавить поле в одном из наших запросов. Я NT PHP-программист купил, я немного ударил. Запрос: <код> if (_QUERYSTRING_) { switch ($intMode) { ...

0  CakePhp: Сохранение нескольких данных Checkbox связанных  ( Cakephp saving multiple checkbox associated data ) 
Я искал другие учебники и гиды, но не нашел ничего, что делает то, что я после. У меня есть форма, которая имеет несколько поле выбора, которое возвращает м...

1  Почему это представляет действие, не работаю с PHP ISSET?  ( Why this submit action dont work with php isset ) 
У меня есть этот код, является зарегистрируем HTML с действием PHP при нажатии кнопки «Отправить» <код> <html> <head> <title>Pruebas de registro </title...

0  Я хочу получить изображение, удивляемые в PHP, нажав кнопку «Отправить», когда я пробую приведенный ниже код, получая ошибку для ISSET [Закрыто]  ( I want to get the image cordinates in php on clicking the submit button when i ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыто. Этот вопрос не воспроизводится или был вызван опечаткам...

1  Для чего используется Composer.json [закрыто]  ( For what is used composer json ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт. Этот вопрос не соответствует Рекомендациям переполнения ...

1  Размер базы данных для календаря событий  ( Database size for an event calendar ) 
Я делаю проект на календаре событий, используя PHP и MySQL. У меня есть сомнение, что, когда мы стараемся включить события в каждый час в каждый день, он де...

-1  Предупреждение: array_push () ожидает параметр 1, чтобы быть массивом, объект, указанный в строке 26  ( Warning array push expects parameter 1 to be array object given on line 26 ) 
Я не совсем уверен, почему это появляется на странице моего сайта? Я посмотрел на код, но на этой линии кажется не так. и линия - это строка array_push Неко...

13  Отправьте данные FORM HTML в базу данных SQL через PHP (используя mysqli)  ( Send html form data to sql database via php using mysqli ) 
Я хочу отправить данные, введенные в HTML-форму в мою базу данных SQL, то есть создайте новую строку, приписываю определенные значения в определенные столбцы....

96  Профилирование памяти PHP  ( Php memory profiling ) 
Какой хороший способ профиля использования памяти PHP? Например, чтобы увидеть, сколько памяти используют мои данные, а / или какие вызовы функций выделяют на...

1  Заказ в порядке без использования событий  ( Order in order without using events ) 
Моя таблица MySQL имеет следующую структуру: <код> +------+----------+-----+-----------+----------------+----------+ | uuid | username | ... | clan_rank | u...

0  Массив часов на будние дни - пытаясь объединить дни, которые одинаковы  ( Array of hours for weekdays trying to combine days that are the same ) 
Контролирующие часы работы на веб-сайте из базы данных, поэтому конечные пользователи могут скриться с ними, и я пытаюсь отобразить их все в аккуратной манере...

1  Передайте переменную из исходного файла в включенный файл в PHP  ( Pass a variable from the source file to an included file in php ) 
Для моего сайта я хочу хранить общий формат сайта в одном файле PHP в одном месте, и каждый из разных страниц содержимого в местном месте страницы. Затем я хо...

0  Yii2 - Есть ли способ написать основные символы в модели поиска и результаты показывают все запросы как базовыми, так и специальными символами?  ( Yii2 is there a way to write basic characters in search model and results show ) 
Просто сказать это сначала, я относительно новый в Yii2, так что спасибо за понимание. Я использую Mariadb Database Engine. Например, в QueryParams я писа...

-1  PHP Удалить окружающие пустые массивы из массива меню  ( Php remove surrounding empty arrays from menu array ) 
Привет, я пытаюсь построить лучшее динамическое меню, чем тот, который у меня в настоящее время использует массивы У меня нет проблем с удалением окружающих...

-1  Перемещение и переименование загруженного файла  ( Moving and renaming an uploaded file ) 
Извините, если это легко, но я немного нового для программирования, поэтому у меня проблемы с переименованием временного загруженного файла. Вот мой код: ht...

Связанный проблема

0  Добавление поля в запросе MySQL 
0  CakePhp: Сохранение нескольких данных Checkbox связанных 
1  Почему это представляет действие, не работаю с PHP ISSET? 
0  Я хочу получить изображение, удивляемые в PHP, нажав кнопку «Отправить», когда я пробую приведенный ниже код, получая ошибку для ISSET [Закрыто] 
1  Для чего используется Composer.json [закрыто] 
1  Размер базы данных для календаря событий 
-1  Предупреждение: array_push () ожидает параметр 1, чтобы быть массивом, объект, указанный в строке 26 
13  Отправьте данные FORM HTML в базу данных SQL через PHP (используя mysqli) 
96  Профилирование памяти PHP 
1  Заказ в порядке без использования событий 
0  Массив часов на будние дни - пытаясь объединить дни, которые одинаковы 
1  Передайте переменную из исходного файла в включенный файл в PHP 
0  Yii2 - Есть ли способ написать основные символы в модели поиска и результаты показывают все запросы как базовыми, так и специальными символами? 
-1  PHP Удалить окружающие пустые массивы из массива меню 
-1  Перемещение и переименование загруженного файла 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.