Mysql 字符串的前3位

Mysql 字符串的前3位,mysql,Mysql,知道字符串前3位的最佳方法是什么? 我已经为同样的问题编写了一个函数。这是预期的工作,但我想知道是否有更好的方法来做到这一点 mysql> select areacode_fun('233434535'); +---------------------------+ | areacode_fun('233434535') | +---------------------------+ | 233 | +----------------------

知道字符串前3位的最佳方法是什么? 我已经为同样的问题编写了一个函数。这是预期的工作,但我想知道是否有更好的方法来做到这一点

mysql> select areacode_fun('233434535');
+---------------------------+
| areacode_fun('233434535') |
+---------------------------+
| 233                       |
+---------------------------+
1 row in set (0.00 sec)

mysql> select areacode_fun('2 33434535');
+----------------------------+
| areacode_fun('2 33434535') |
+----------------------------+
| 233                        |
+----------------------------+
1 row in set (0.00 sec)

mysql> select areacode_fun('2a33434535');
+----------------------------+
| areacode_fun('2a33434535') |
+----------------------------+
| 233                        |
+----------------------------+
1 row in set (0.00 sec)

mysql> select areacode_fun('(2a3)3434535');
+------------------------------+
| areacode_fun('(2a3)3434535') |
+------------------------------+
| 233                          |
+------------------------------+
1 row in set (0.00 sec)

只是大声想一想,用它怎么样


为什么不发布代码呢?这是在使用自定义逻辑访问数据库之前应该进行的输入验证,我想您的函数做的是正确的,并且很好。如果您希望在一个sql查询中获得一个解决方案,那么它可能没有帮助。若你们发布你们的功能,那个么人们至少可以帮助优化它。比什么更好的方法?您需要发布
areacode\u fun
代码,以便我们建议替代/其他解决方案。它有何帮助?结果为零,但预期为233
SELECT '2a33434535' REGEXP '^[\+\-]?\d*\.?[Ee]?[\+\-]?\d*$';