我试图从MySQL中的字符串列中提取固定长度的数字,我该怎么做呢?通常喜欢和正则表达式不起作用,所以我很确定需要一个函数,但不确定从哪里开始以及如何编写一个函数。
请指教。
固定长度的数字是10位数字和字符串列的样本:
'SGD0.00 AUTOMSG:'0179187381' is near Esso @ 23:59.'
请注意字符串中10位数的位置不同。
答案 0 :(得分:1)
简单:
Just use: SUBSTR(str,x,y)
where:- str -> String,
x -> position,
y -> length
示例: SELECT SUBSTR(' ABCDEFG',2,3); - > BCD
有关更多信息,请访问此链接: http://www.w3resource.com/mysql/string-functions/mysql-substring-function.php
答案 1 :(得分:0)
mysql> select substr("'SGD0.00 AUTOMSG:'0179187381' is near Esso @ 23:59.'", 19,10);
+-----------------------------------------------------------------------+
| substr("'SGD0.00 AUTOMSG:'0179187381' is near Esso @ 23:59.'", 19,10) |
+-----------------------------------------------------------------------+
| 0179187381 |
+-----------------------------------------------------------------------+
1 row in set (0.48 sec)
答案 2 :(得分:0)
SELECT SUBSTRING('Quadratically',5);
语法:SUBSTRING(str,pos)
了解更多信息:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring
答案 3 :(得分:0)
如果10位数字始终以:'
开头,那么您可以使用:
select substr(column_name, locate(":'", column_name) + 2, 10) from table_name
(假设:'
没有出现在字符串中的数字之前的其他地方)