Я работаю с таблицей, в которой есть 3 столбца, которые я вижу.INVERTER_ID
, TIME_STAMP
и POWER
INVERTER_ID
и TIME_STAMP
являются индексами.
Это огромный стол.Один из моих кодов выдавал ошибку, потому что встречались повторяющиеся записи.
Я получил метку времени и инвертор_ид, для которых у меня были повторяющиеся записи.'2019-05-04 21:00:00' и INV1020
Я запросил у таблицы:
SELECT `INVERTER_ID`,`TIME_STAMP`,`POWER`
FROM `INV_POWER`
WHERE `TIME_STAMP`='2019-05-04 21:00:00' and
`INVERTER_ID` ='INV1020'
Получил только один результат.
INV1020 2019-05-04 21:00:00 0.0
Странно, я подумал, поэтому я пошел и проверил SQL-запрос, который использовал мой код, и запросил его:
SELECT `INVERTER_ID`,`TIME_STAMP`,`POWER
FROM `INV_POWER`
WHERE `TIME_STAMP`<='2019-05-04 21:00:01' and
`TIME_STAMP`>='2019-05-04 21:00:00' and
`INVERTER_ID` ='INV1020'
В этом случае я получил два результата:
INV1020 2019-05-04 21:00:00 0.0
INV1020 2019-05-04 21:00:00 0.0
Любопытноо том, как и почему это происходит.когда у меня есть INVERTER_ID
и TIME_STAMP
в качестве индексов, я проверил структуру таблицы и обнаружил, что AUTO_INDEX
- это primary_key и индекс.Поэтому я запросил снова, но на этот раз с AUTO_INDEX
, столбец в моем выборе.
SELECT `AUTO_INDEX`, `INVERTER_ID`,`TIME_STAMP`,`POWER` FROM `INV_POWER` WHERE `TIME_STAMP`<='2019-05-04 21:00:01' and `TIME_STAMP`>='2019-05-04 21:00:00' and`INVERTER_ID` ='INV1020'
6081057323 INV1020 2019-05-04 21:00:00 0.0
25805384826 INV1020 2019-05-04 21:00:00 0.0
------------------------------------------------------------------
Вопрос: Почему это происходит?С установленным индексом, как он вообще был вставлен?Почему я вижу дубликаты при использовании <
и >
;а не когда я использую =
.
Заранее спасибо :)) 1039 *