CREATE TABLE some_table (
field1 int(11) NOT NULL AUTO_INCREMENT,
field2 varchar(10) NOT NULL,
field3 varchar(10) NOT NULL,
PRIMARY KEY (`field1`)
);
INSERT INTO `some_table` (field1, field2, field3) VALUES
(1, 'text one', 'foo'),
(2, 'text two', 'bar'),
(3, 'text three', 'data'),
(4, 'text four', 'magic');
這個查詢有點奇怪,但它不需要另一個查詢來初始化變量;它可以嵌入到更復雜的查詢中。 它返回所有'field2的分號分隔符。
SELECT result
FROM (SELECT @result := '',
(SELECT result
FROM (SELECT @result := CONCAT_WS(';', @result, field2) AS result,
LENGTH(@result) AS blength
FROM some_table
ORDER BY blength DESC
LIMIT 1) AS sub1) AS result) AS sub2;
你的意思是除了做客戶端的工作? – lexu 2010-04-02 18:37:25
感謝好友...你的問題是我的問題的答案:) – 2013-04-13 11:25:34
你似乎已經選擇了一個答案,但出於好奇,爲什麼你不能使用'SET'語句來更改會話變量? – 2013-08-21 06:49:34