0
定界符好好尝试一下工作拆分字符串这是一个成功的抓住了单线条勾勒出字符串的函数,直到它与一些波兰特殊字符MySQL的功能与波兰特殊字符
DELIMITER $$
DROP FUNCTION SPLIT_STR $$
CREATE FUNCTION SPLIT_STR(x VARCHAR(1500) CHARSET utf8 COLLATE utf8_unicode_ci, delim VARCHAR(12) CHARSET utf8 COLLATE utf8_unicode_ci, pos INTEGER)
RETURNS VARCHAR(500) CHARSET utf8 COLLATE utf8_unicode_ci
BEGIN
DECLARE output VARCHAR(1500) CHARSET utf8 COLLATE utf8_unicode_ci;
SET output = REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos)
, LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1)
, delim
, '');
RETURN output;
END $$
正如你可以看到文本,我手动设置字符集和整理(与整个数据库使用相同)。我也试过没有字符集和整理设置,它不起作用。
输出重现(这就是它是如何存储在数据库作为一个字段):
śńąśąńśąńśąńóńśńąśąńśąńśąńóń
śńąśąńśąńśąńóń
sas
这样做
SELECT
SPLIT_STR(slides.content1, '\n', 1),
SPLIT_STR(slides.content1, '\n', 2),
SPLIT_STR(slides.content1, '\n', 3),
我实际上只得到了第一行(其他2个字段为空)
śńąśąńśąńśąńóńśńąśąńśąńśąńóń
我猜你想用'CHAR_LENGTH()'替换'LENGTH()'。 – 2015-03-02 19:02:56
宾果!随意发布它作为答案,我会接受它。也谢谢你! – 2015-03-02 19:09:57