我正在尝试从表中选择所有行,其中列包含列表中的元素:类似于
Select * from `table` where `column` (contains anything from {£,$,%,^,&,...,/})
这基本上是一个非法的字符检查。
任何人都可以帮忙吗?
谢谢
您可以LIKE
用于模式匹配,
SELECT *
FROM `table`
WHERE `column` LIKE '%£%' OR
`column` LIKE '%$%' OR
`column` LIKE '%\%%' OR
`column` LIKE '%&%'
如果我理解正确,您想要所有具有非字母数字字符的行,即除数字和字母之外
SELECT * FROM `table` WHERE `column` REGEXP '^[^a-zA-Z0-9]+$'
内部字符类意味着否定,而^
在[ ]
正则表达式开头的外部指定列值的开始。$
实现字符串值的结尾
SELECT * FROM table WHERE column LIKE '%\%%' OR column LIKE '%$%' OR column LIKE '%&%';
...ETC。'%char%' 表示某处有 char,'%char' 表示 char 在字符串的末尾,'char%' 表示它在开头。'%\%%' 表示搜索到的字符(%)是 mysql 使用的特殊字符,'\' 是必须的。