SELECT *
FROM mytable mto
WHERE EXISTS
(
SELECT 1
FROM mytable mti
WHERE mti.varchar_column = mto.varchar_column
LIMIT 1, 1
)
Этот запрос возвращает полные записи, а не только отдельные varchar_column
.
Этот запрос не использует COUNT(*)
. Если имеется много дубликатов, COUNT(*)
стоит дорого, и вам не нужно целое COUNT(*)
, вам просто нужно знать, есть ли две строки с одинаковым значением.
Имея индекс на varchar_column
, конечно, значительно ускорит этот запрос.
Это недавно появилось в другом вопросе . Далее я подробно остановлюсь на моем ответе :
Эллипсис - это объект, который может появляться в обозначениях срезов. Например:
myList[1:2, ..., 0]
Его интерпретация полностью зависит от того, что реализует функцию __ getitem __
и видит там объекты Ellipsis
, но ее основное (и предполагаемое) использование заключается в числовом расширение python , которое добавляет тип многомерного массива. Поскольку существует более одного измерения, нарезка становится более сложной, чем просто индекс начала и остановки; также полезно иметь возможность нарезать несколько размеров. Например, для массива 4x4 верхняя левая область будет определяться срезом [: 2,: 2]
:
>>> a
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
>>> a[:2,:2] # top left
array([[1, 2],
[5, 6]])
Расширение этого далее, Многоточие используется здесь, чтобы указать местозаполнитель для остальных размеров массива, не указанных. Думайте об этом как об указании полного среза [:]
для всех размеров в зазоре, в котором он находится, поэтому для трехмерного массива a [..., 0]
является аналогично a [:,:, 0]
и для 4d, a [:,:,:, 0]
, аналогично, a [0, ..., 0]
- это a [0,:,:, 0]
(хотя большое количество двоеточий в середине составляют полное число измерений в массиве).
Интересно, что в python3, литерал Ellipsis ( ...
) может использоваться вне синтаксиса среза, так что вы можете написать:
>>> ...
Ellipsis
За исключением различных числовых типов, нет, я не думаю, что он используется. Насколько я знаю, он был добавлен исключительно для простого использования и не поддерживает ядро, кроме предоставления объекта и соответствующего синтаксиса.
Из документации Python :
Этот объект используется расширенным слайсом обозначение (см. Python Reference Руководство по эксплуатации ). Не поддерживает никаких специальных операции. Есть ровно один объект эллипса, названный
эллипсис
( встроенное имя).
Вы можете использовать Ellipsis самостоятельно, в пользовательских ситуациях нарезки, как это делал numpy, но он не используется ни в одном встроенном классе.
Я не знаю, был ли он добавлен специально для использования в Numpy, но я, конечно, не видел, чтобы он использовался в другом месте.
См. также: Как вы используете синтаксис нарезки многоточия в Python?