我正在尝试从列中包含列表元素的表中选择所有行: 像
这样的东西Select * from `table` where `column` (contains anything from {£,$,%,^,&,...,/})
这基本上是非法的角色检查。
有人可以帮忙吗?
由于
答案 0 :(得分:9)
对于MySQL,您可以使用REGEXP
或RLIKE
来检查特定列以进行模式匹配。在您的情况下,以下示例可能有效:
SELECT * FROM `table` WHERE `column` REGEXP '[\£\$\%\^\&]';
答案 1 :(得分:0)
您可以使用LIKE
进行模式匹配,
SELECT *
FROM `table`
WHERE `column` LIKE '%£%' OR
`column` LIKE '%$%' OR
`column` LIKE '%\%%' OR
`column` LIKE '%&%'
答案 2 :(得分:0)
如果我理解正确,你想要所有包含非字母数字字符的行,即除了数字和字母之外
SELECT * FROM `table` WHERE `column` REGEXP '^[^a-zA-Z0-9]+$'
^
内部[ ]
charcter类意味着否定,而正则表达式开头的外部指定列值的开始。 $
实现字符串值
答案 3 :(得分:0)
SELECT * FROM table WHERE column LIKE '%\%%' OR column LIKE '%$%' OR column LIKE '%&%';
...等。 '%char%'表示某处存在char,'%char'表示char位于字符串的末尾,'char%'表示它位于开头。 '%\ %%'表示搜索的char(%)是mysql使用的特殊字符,'\'是必需的。