Как было сказано ранее, он оценивает все утверждения, но использует последнее в качестве значения выражения. Лично я нашел его полезным в выражениях цикла:
for (tmp=0, i = MAX; i > 0; i--)
Вы можете использовать GROUP_CONCAT для выполнения этого, например. что-то вроде
SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list
FROM sites s
INNER JOIN publications p ON(s.id = p.site_id)
GROUP BY p.id, p.name;
Вместо использования group concat()
вы можете использовать только concat()
Select concat(Col1, ',', Col2) as Foo_Bar from Table1;
edit, это работает только в mySQL; Oracle concat принимает только два аргумента. В оракуле вы можете использовать что-то вроде select col1 || ',' || col2 || ',' || col3 как foobar из таблицы1; в sql-сервере вы должны использовать + вместо труб.
В моем случае мне нужно объединить весь номер учетной записи человека, номер мобильного телефона которого уникален. Поэтому для этого я использовал следующий запрос.
SELECT GROUP_CONCAT(AccountsNo) as Accounts FROM `tblaccounts` GROUP BY MobileNumber
Результат запроса ниже:
Accounts
93348001,97530801,93348001,97530801
89663501
62630701
6227895144840002
60070021
60070020
60070019
60070018
60070017
60070016
60070015
GROUP_CONCAT(CAST(s.name AS CHAR))
, иначе он просто вернет что-то совершенно неиспользуемое, как[BLOB - 20 Bytes]
. – devios1 1 March 2012 в 17:52