Как Вы выбираете каждую энную строку из mysql

Я пытался подражать тому, что вы могли бы сделать в своем jQuery фрагменте, но, скорее всего, он другой, так как мой пример работает.

var children = $(".container > span");

for (var i = 0; i < children.length; i++) 
{
    var item =$(children[i]);
    item.css({"margin-right" : '10px',"display":"block"});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <span>Child one</span>
  <span>Child two</span>  
</div>

72
задан Corban Brook 22 May 2009 в 14:02
поделиться

4 ответа

SELECT * 
FROM ( 
    SELECT 
        @row := @row +1 AS rownum, [column name] 
    FROM ( 
        SELECT @row :=0) r, [table name] 
    ) ranked 
WHERE rownum % [n] = 1 
74
ответ дан 24 November 2019 в 12:36
поделиться

Поскольку вы сказали, что используете MySQL, вы можете использовать пользовательские переменные для создания непрерывной нумерации строк. Вы должны поместить это в производную таблицу (подзапрос).

SET @x := 0;
SELECT *
FROM (SELECT (@x:=@x+1) AS x, mt.* FROM mytable mt ORDER BY RAND()) t
WHERE x MOD 5 = 0;

Я добавил ORDER BY RAND () , чтобы получить псевдослучайную выборку, вместо того, чтобы позволять каждой пятой строке неупорядоченной таблицы находиться в образец каждый раз.


Анонимный пользователь попытался отредактировать это, чтобы изменить x MOD 5 = 0 на x MOD 5 = 1 . Я вернул его к своему исходному.

Для записи, в этом состоянии можно использовать любое значение от 0 до 4, и нет причин предпочитать одно значение другому.

22
ответ дан 24 November 2019 в 12:36
поделиться

Вы можете попробовать mod 5, чтобы получить строки с идентификатором, кратным 5. (Предполагая, что у вас есть какой-то столбец идентификатора, который является последовательным.)

select * from table where table.id mod 5 = 0;
52
ответ дан 24 November 2019 в 12:36
поделиться

Я искал нечто подобное. Ответ Тейлора и Билла заставил меня усовершенствовать их идеи.

таблица data1 имеет поля read_date, value мы хотим выбрать каждую 2-ю запись из запроса, ограниченного диапазоном read_date имя производной таблицы произвольное и здесь называется DT

запрос:

 SET @row := 0;
  SELECT * FROM  ( SELECT @row := @row +1 AS rownum, read_date, value  FROM data1  
  WHERE  read_date>= 1279771200 AND read_date <= 1281844740 ) as DT WHERE MOD(rownum,2)=0
2
ответ дан 24 November 2019 в 12:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: