MySQL REGEXP 字母和数字,但没有仅包含数字的记录

标签 mysql regex

如何SELECT所有行的记录,其中value列包含数字字母,但只是数字?

假设我有以下 MySQL 表:

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

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

最佳答案

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

关于MySQL REGEXP 字母和数字,但没有仅包含数字的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354290/

相关文章:

php - 一对多关系的 json 数组

mysql - 如何使用MySQL生成不同编码的字符?

php - 通过php用mysql比较两个表

sql - 从 STATION 查询以元音(即 a、e、i、o 或 u)开头的 CITY 名称列表

php - 正则表达式 : Unknown modifier '\'

Javascript 正则表达式模式捕获 - 所有可能的组合

java - 格式化正则表达式的问题

mysql - 从 MySql 中检索两个 Varchar 日期之间的数据

mysql - 将 datetime > now 与 Jetbrains Exposed 进行比较

regex - ExpressJS 路由正则表达式