MySQL中有任何函數用於爆炸某列的數據然後檢索它嗎? 如果列數據是P:12,那麼數據可以在':'上分解,然後讀取?類似於MySQL中爆炸工作的函數
1
A
回答
2
以下是有關SPLIT
問題mysql的許多討論:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
1
你可以寫在MYSQL分流功能檢查這個link
從鏈接
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(string, delimiter, position)
例
SELECT SPLIT_STR('a|bb|ccc|dd', '|', 3) as third;
+-------+
| third |
+-------+
| ccc |
+-------+
0
我解析使用while循環的串和插入拆分項到臨時表。這很複雜,但我複製並粘貼代碼,然後更改表名以提高可讀性。下面是一個例子來分析用戶ID的逗號分隔列表到一個臨時表:
CREATE PROCEDURE spParse
(_UserList MEDIUMTEXT)
BEGIN
DECLARE _Pos INT;
DECLARE _Start INT;
DECLARE _Item INT;
DECLARE _Length INT;
CREATE TEMPORARY TABLE IF NOT EXISTS TempUserList
(
UserID INT
);
SET _Length = LENGTH(_UserList);
SET _Pos = 1;
SET _Start = 1;
divide_loop:LOOP
IF _Pos > _Length Then
LEAVE divide_loop;
End If;
IF SUBSTRING(_UserList,_Pos,1) = ',' Then
IF _Pos - _Start > 0 Then
IF IsNumeric(SUBSTRING(_UserList,_Start,_Pos-_Start)) Then
SET _Item = CONVERT(SUBSTRING(_UserList,_Start,_Pos-_Start),Signed);
INSERT INTO TempUserList (UserID)
VALUES (_Item);
End If;
End If;
SET _Start = _Pos + 1;
End If;
SET _Pos = _Pos + 1;
END LOOP divide_loop;
IF _Start <= _Length Then
If IsNumeric(SUBSTRING(_UserList,_Start,_Length - _Start + 1)) Then
SET _Item = CONVERT(SUBSTRING(_UserList,_Start,_Length - _Start + 1),Signed);
INSERT INTO TempUserList (UserID)
VALUES (_Item);
End If;
End If;
SELECT UserID FROM TempUserList;
DROP TABLE TempUserList;
END
相關問題
- 1. codeigniter中的爆炸函數
- 2. PHP爆炸函數
- 3. PHP爆炸函數
- 4. 鍵值對類似於在PHP中爆炸的方法?
- 5. in_array工作不爆炸
- 6. PHP爆炸沒有工作
- 7. MySQL查詢爆炸,數
- 8. php爆炸函數錯誤
- 9. 爆炸和str_replace函數
- 10. php爆炸mysql行
- 11. Mysql的優化和爆炸
- 12. 爆炸指數?
- 13. jQuery的爆炸效果不工作
- 14. 爆炸不工作的部分符號「§」
- 15. 爆/爆炸PHP數組
- 16. C的替代PHP的爆炸函數
- 17. 爆炸字符串的函數?
- 18. 使用PHP的爆炸()函數
- 19. MySQL爆炸字符串?
- 20. mysql在查詢內爆炸
- 21. PHP爆炸函數空數組元素
- 22. SparkSQL第二爆炸的第一爆炸
- 23. PHP MYSQL編輯窗體,試圖爆炸/爆炸行復選框?
- 24. 爆炸功能不能正常工作
- 25. 爆炸,in_Array搜索不工作
- 26. 爲什麼不爆炸()工作?
- 27. 爆炸功能無法正常工作
- 28. PHP爆炸不能正常工作
- 29. php爆炸不工作在JavaScript模板
- 30. 爆炸,in_Array搜索不工作
不回答您的問與答,但你應該總是儘量保持只有一個數據塊中的任何一個字段/記錄。在這種情況下,如何將P從12分開存儲? – Basic 2012-04-03 08:23:40
看起來這個問題曾被問到過:http://stackoverflow.com/questions/471914/can-you-split-explode-a-field-in-a-mysql-query – Bram 2012-04-03 08:21:03