我在MYSQL表字段中有这个字符串1111-2222-3-4-55-12345678901234567 1
。
我需要做的是分隔用-
分隔的前5个参数。就像我需要分开一样:
1111
2222
3
4
55
答案 0 :(得分:4)
$stringElements = explode('-', $string);
echo $stringElements[0];// 1111
echo $stringElements[1];// 2222
echo $stringElements[2];// 3
echo $stringElements[3];// 4
echo $stringElements[4];// 55
$stringElements[5];// 12345678901234567 1
答案 1 :(得分:0)
如果字符串中每个部分的长度是常数,那么
select replace(left(fieldname,16),'-','') as alias from table
会做到这一点。
更新:
如果您需要在单独的字段中包含每个单独的值,那么它会稍微复杂一些:
SELECT REPLACE(SUBSTRING(SUBSTRING_INDEX(fieldname, '-', 1), LENGTH(SUBSTRING_INDEX(fieldname,'-', 0)) + 1) as first,
REPLACE(SUBSTRING(SUBSTRING_INDEX(fieldname, '-', 2), LENGTH(SUBSTRING_INDEX(fieldname,'-', 1)) + 1) as second,
...
FROM table
答案 2 :(得分:0)
即使我没有测试它,这应该可以解决你的问题。
SELECT `mystring`,
SUBSTRING_INDEX(mystring,'-',1) AS part1,
SUBSTRING_INDEX(SUBSTRING_INDEX(mystring,'-',2),'-',-1) AS part2,
SUBSTRING_INDEX(SUBSTRING_INDEX(mystring,'-',3),'-',-1) AS part3,
SUBSTRING_INDEX(SUBSTRING_INDEX(mystring,'-',4),'-',-1) AS part4,
SUBSTRING_INDEX(SUBSTRING_INDEX(mystring,'-',5),'-',-1) AS part5,
FROM my_table;
------------------------------------------------------------------------------
| mystring | part1 | part2 | part3 | part4 | part5 |
------------------------------------------------------------------------------
| 1111-2222-3-4-55-12345678901234567 | 1111 | 2222 | 3 | 4 | 55 |
这是将文本拆分为增加的索引计数,并将其从每个部分的最后一个索引重新拆分为part2到part5
答案 3 :(得分:0)
您可以创建功能:
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
然后像
一样使用它SELECT SPLIT_STR('1-2-3', '-', 1);
它将返回1.通过所有这些示例,您可以轻松构建自己的查询
来源:http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/
答案 4 :(得分:0)
collectionView:layout:sizeForItemAtIndexPath: