我有一个列名发送,包括字母和数字值而不是字母数字,我想分隔字母值和它们的计数。
建议我查询?我试过'%[0-9]%'但不能分开
答案 0 :(得分:0)
您应该尝试包含一些示例数据或一些代码,以显示您要执行的操作。
但是,无论如何,希望你可以将我的例子用于你的问题。首先,我将创建一个列名为“send”的表,如上所述:
mysql> CREATE TABLE test (send VARCHAR(255));
Query OK, 0 rows affected (0.11 sec)
我们将插入一些数字和非数字的各种值:
mysql> INSERT INTO test (send) VALUES (1), (-2), (3), ('a'), ('b'), ('ZZ'),
-> ('test'), (42), ('1.2'), (0), (0123), ('123');
Query OK, 12 rows affected (0.01 sec)
Records: 12 Duplicates: 0 Warnings: 0
然后我们可以构建一个使用REGEXP来确定值是否为数字的查询:
mysql> SELECT
-> COUNT(*) AS `Count`,
-> IF(1 = send REGEXP '^(-|\\+)?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+|[0-9]+)$',
-> 'NUMERIC',
-> 'NON-NUMERIC') AS IsNumeric
-> FROM
-> test
-> GROUP BY
-> IsNumeric
-> ;
+-------+-------------+
| Count | IsNumeric |
+-------+-------------+
| 4 | NON-NUMERIC |
| 8 | NUMERIC |
+-------+-------------+
2 rows in set (0.00 sec)
将此应用于您正在尝试的任何内容。说“发送REGEXP”^( - | \ +)的部分?([0-9] + \。[0-9] | [0-9] \。[0-9] + | [0-9] +)如果send的值是数字,则$'“返回1。