Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅选择MySQL中仅包含字母数字字符的行_Mysql_Regex - Fatal编程技术网

仅选择MySQL中仅包含字母数字字符的行

仅选择MySQL中仅包含字母数字字符的行,mysql,regex,Mysql,Regex,我正在尝试使用以下方法选择MySQL中仅包含字母数字字符的所有行: SELECT * FROM table WHERE column REGEXP '[A-Za-z0-9]'; 但是,它将返回所有行,而不管它们是否包含非字母数字字符。请尝试以下代码: SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$' 这将确保所有字符都匹配。请尝试以下操作: REGEXP '^[a-z0-9]+$' SELECT * FROM table WH

我正在尝试使用以下方法选择MySQL中仅包含字母数字字符的所有行:

SELECT * FROM table WHERE column REGEXP '[A-Za-z0-9]';
但是,它将返回所有行,而不管它们是否包含非字母数字字符。

请尝试以下代码:

SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$'
这将确保所有字符都匹配。

请尝试以下操作:

REGEXP '^[a-z0-9]+$'
SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$';

因为除了二进制字段外,regexp不区分大小写。

您的语句匹配任何包含字母或数字的字符串,即使它包含其他非字母数字字符。试试这个:

SELECT * FROM table WHERE column REGEXP '^[A-Za-z0-9]+$';
^
$
需要匹配整个字符串,而不仅仅是其中的任何部分,并且
+
查找一个或多个字母数字字符

如果愿意,还可以使用命名字符类:

SELECT * FROM table WHERE column REGEXP '^[[:alnum:]]+$';

REGEXP
更改为
Like

SELECT * FROM table_name WHERE column_name like '%[^a-zA-Z0-9]%'
这个很好用

还有一个:

select m from table where not regexp_like(m, '^[0-9]\d+$')
它从所需列中选择包含字符的行(示例中为m,但您可以更改)

大多数组合在Oracle平台中都不能正常工作,但这确实可以。共享以备将来参考。

试试这个

select count(*) from table where cast(col as double) is null;

好的,它做得很好,但它不显示包括数据字段在内的空间。如何通过此查询获取包含数据字段的空间。@Md.MahabuburRahman:regexp是否有效?我记得在最后一个字符上使用isnumeric进行此操作。这很有趣。感谢从birt中选择名称,其中为数字(右(名称,1))=1@chungtinhlakho不,与
isnumeric()
相比,regexp效率非常低。如果可以,请使用专用函数。