MySQL REGEXP字母和数字,但没有记录,只有数字

nhhxz33t  于 2023-06-25  发布在  Mysql
关注(0)|答案(3)|浏览(140)

我如何SELECT所有记录的行,其中value列包含数字 * 和 * 字母,但 * 不 * 只是数字?
假设我有下面的MySQL表:

+----+-------+
| id | value |
+----+-------+
| 1  | a1    |
+----+-------+
| 2  | aa    |
+----+-------+
| 3  | 22    |
+----+-------+
| 4  | 3t    |
+----+-------+

返回的所需id行将是1、2和4;而不是3,因为它只包含数字。

2wnc66cl

2wnc66cl1#

value/1技巧有一个问题--它只查看value开头的数字。
我觉得你需要

WHERE `value` REGEXP '[[:alpha:]]'
  AND `value` REGEXP '[[:digit:]]'

或者

WHERE     `value` REGEXP '[[:alpha:]]'    -- contains letters
  AND NOT `value` REGEXP '^[[:digit:]]+$' -- but not just digits
xmq68pz9

xmq68pz92#

这样就不需要任何正则表达式了。

SELECT * FROM table WHERE (value / 1)='NULL';
yxyvkwin

yxyvkwin3#

使用REGEXP

SELECT * FROM [table] WHERE [value] REGEXP '[A-Za-z]' AND [value] IS NOT NULL

相关问题