Относительно этого Receive range of dates. If starting dating doesn't exist fetch range from the closest past date, я столкнулся с странной проблемой.Как порядок mysql, когда псевдоним столбца и его имя совпадают?
Вот таблицы HistoryPrices
так:
| Date | Price |
|------------|-------|
| 2015-12-25 | 44.5 |
| 2016-01-01 | 90.5 |
| 2016-01-03 | 50.5 |
| 2016-01-04 | 45.6 |
| 2016-01-10 | 40.99 |
| 2016-01-15 | 50.5 |
| 2016-01-22 | 50.99 |
Когда я запустил этот запрос:
select *
from HistoryPrices
order by `date` desc
limit 1;
я получил правый ряд | 2016-01-22 | 50.99 |
.
Когда я побежал это:
select '2016-01-22', Price
from HistoryPrices
order by `date` desc
limit 1;
Также правильный ожидаемый результат | 2016-01-22 | 50.99 |
И этот запрос:
select '2016-01-22' as xxx, Price
from HistoryPrices
order by `date` desc
limit 1;
Также | 2016-01-22 | 50.99 |
Однако, когда я побежал это:
select '2016-01-22' as `date`, Price
from HistoryPrices
order by `date` desc
limit 1;
Я получил этот результат | 2016-01-22 | 44.5 |
. Я понятия не имею, почему это произошло. Возможно, псевдоним столбца и имя столбца совпадают с date
, а затем, когда order by `date`
, mysql не знает, как это сделать? Но я не могу это подтвердить.
Может ли кто-нибудь пояснить мне, пожалуйста?
Любая помощь будет оценена по достоинству. Заранее спасибо.
Спасибо за столь быстрый ответ, и я знаю, что ты сказал здесь, но, как вы видели, последний запрос дал мне 44,5, как это случилось? – Blank
@JPG. , , Он использует столбец, определенный в 'select'. Все строки имеют одинаковое значение, поэтому выбирается неопределенная строка. –
Получил, еще раз спасибо. – Blank