MySQL-查询以获取特定字符非英语的所有行

时间:2018-10-19 20:14:32

标签: mysql

我有一个包含nvarchar元素的表。 该表包含2种元素:

  1. 只有数字字符的元素
  2. 具有数字字符且第三个字符是非英文字符的元素

我希望查询获取所有第三个字符非英语的行。有人可以帮忙吗?

编辑

使用WHERE SUBSTRING(<table>.ColumnName, 3, 1) NOT BETWEEN '0' AND '9'还是对我有用

2 个答案:

答案 0 :(得分:0)

我将regexp_like与正则表达式一起使用,即第三个字符不是数字:

SELECT *
FROM   mytable
WHERE  REGEXP_LIKE(mycol, '..[^[:digit:]].*')

在低于8.0的MySQL版本中,您可以使用regexp运算符:

SELECT *
FROM   mytable
WHERE  mycol REGEXP '..[^[:digit:]].*'

答案 1 :(得分:0)

您可以使用RLIKE运算符,以下是用于匹配不是数字也不是英语字母的第三个字符的查询

SELECT * FROM 
mytable 
where SUBSTR(mycol,3,1) NOT RLIKE '^[A-Za-z0-9]$';