2012-04-04 2 views
3

Я просто пытаюсь узнать, возможна ли это функция MYSQL GROUP_CONCAT для возврата этого типа данных. Вот сценарийmysql group_concat issue

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks 

, когда я выполнить этот запрос результат будет показать, как этот

enter image description here

Результат требуется 40

+0

40? среднее значение из 5 значений? –

+0

нет Мне нужно только 40 нет в среднем 5 @SalmanA –

+4

Почему только 40? Объясните –

ответ

2

Попробуйте это:

select group_concat(m.marks) from 
    (select distinct marks from marks limit 40) m 
+0

Я не уверен, что правильно понял ваш вопрос, хотя ... :-) –

+0

'LIMIT 40'? Разве вы не имеете в виду 'WHERE marks = 40'? – knittl

+0

@knittl: Не знаю. Мне кажется, что OP хочет ** всего 40 целых чисел **, а не ** всего целых 40 **. Но, как я заявил в своем предыдущем комментарии: не знаю, правильно ли понял, что хочет OP. –

1

Советы сначала: нормализовать таблицы базы данных поле должно содержать только одно значение.

Теперь решение для конкретной задачи: MySQL имеет FIND_IN_SET функцию, которая должна делать то, что вы хотите:

SELECT marks 
FROM marks 
WHERE FIND_IN_SET('40', marks) 
+0

Thanx для обмена опытом, но это не мой вопрос –

+0

@Samad: Тогда какой именно вопрос? – knittl

+0

Я до сих пор не понимаю.'GROUP_CONCAT' создает одну строку из нескольких строк при использовании в комбинации с' GROUP BY'. »[...] хотите выбрать один элемент из поля, разделенного запятой« ← какой элемент? первый? средний? последний? соответствие определенным критериям? – knittl

0

синтаксис

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks 

работает должным образом. Вы даете GROUP_CONCAT(marks) имя i need only 40 int in this column, поэтому оно показывает, что вы говорите через синтаксис.

«Результат требуется 40»

Что это значит, когда вы используете GROUP_CONCAT и вы хотите записать, где знаки 40? Почему бы не использовать запрос как

select * from table_name where marks='40' 

Если GROUP_CONCAT является compultion, а затем использовать

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks where marks='40' 
+0

Я просто объясню свой вопрос, почему я использую этот formate –

+0

Я уже упомянул о моем вопросе, возможно ли это или нет, если возможно, тогда как –

+0

ваш запрос работает должным образом, что он должен, так что вопрос пришел ? означает, что вы хотите показать в результате. –