У меня есть n
записей в my_table
.MySQL: получение записей на основе значения столбца
Я хочу, чтобы выбрать все записи из таблицы, поэтому я использую этот запрос:
SELECT * FROM `my_table`;
Я тогда ограничить его с WHERE
пункта:
SELECT * FROM `my_table` WHERE id > 30;
Но есть колонка (cat_name
) в my_table
, значение которого является решающим. Значение этого столбца не является уникальным, и, следовательно, в записях может быть много повторений. Я хочу, чтобы ограничить записи таким образом, чтобы каждое значение величины cat_name
«s НЕ ДОЛЖЕН быть повторен более чем в четыре раза, следовательно, я хочу такой результат:
+++++++++++++++++++++++++++
id | name | cat_name
+++++++++++++++++++++++++++
33 + Robert + Radio
34 + Alice + Radio
35 + Jennifer + Radio
36 + Sara + Radio
37 + Maria + TV
38 + Sebastian + TV
38 + Jack + TV
40 + Albert + TV
.
.
... the rest of records
но СОЖАЛЕНИЮ Я получаю этот результат, потому что Я не как я должен ограничить запрос таким специфическим образом:
+++++++++++++++++++++++++++
id | name | cat_name
+++++++++++++++++++++++++++
33 + Robert + Radio
34 + Alice + TV
35 + Jennifer + Radio
36 + Sara + Radio
36 + Maria + Radio
36 + Sebastian + TV
36 + Jack + Radio
36 + Albert + Radio
...
Если ' 'Алиса ''связан с'' Radio'' в вашей таблице, то как вы можете получить результат, где '' Алиса' связана с '' TV''? –
Ну, это пример данных, вы уходите далеко от вопроса, я говорю, что сосредоточиться на повторении 'cat_name', я не хочу, чтобы значение записи« cat_name »повторялось более четырех раз –
Для относительно небольшого набора данных функция «COUNT()» и «HAVING» может выполнять эту работу. – pinepain