查找包含非 [a-z] 或 [0-9] 字符的标签

Find tags containing characters that aren't [a-z] or [0-9]

我想为 Stack Exchange Data Explorer 创建一个查询,其中 return 任何包含特殊字符的标签。 (具体来说,任何不是 a-z0-9-+ 的字符)

搜索应该 return 标签,例如 , , , and

我尝试了几种不同的解决方案,但每种解决方案似乎都有自己的一系列问题。


SELECT * FROM tags WHERE tagname NOT REGEXP '^[a-zA-Z0-9]*$'

来源: Oracle SQL - REGEXP_LIKE contains characters other than a-z or A-Z

错误: REGEXP_LIKE 不是可识别的内置函数名称。


SELECT * FROM tags WHERE tagname NOT REGEXP '^[a-zA-Z0-9]*$'

来源: How to get all rows that contain characters others than [a-zA-Z] in MySQL

错误REGEXP

附近的语法不正确

与其尝试在 SQL 中表达 "contains only non-special characters" 并否定它,更容易表达 "contains a special character":

SELECT * FROM tags WHERE tagname LIKE '%[^-+a-z0-9]%'

您会发现这包含 很多 个包含 . 的标签。您可能希望将此添加到要忽略的字符中。

SELECT * FROM tags WHERE tagname LIKE '%[^-+a-z0-9.]%'